| delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| X-Spam-Check-By: | sourceware.org |
| X-IronPortListener: | Outbound_SMTP |
| MIME-Version: | 1.0 |
| Subject: | RE: Re: find . -regex '.*js' -type f -exec md5sum '{}' \\; really slow! |
| Date: | Mon, 24 Nov 2008 17:53:38 -0500 |
| Message-ID: | <31DDB7BE4BF41D4888D41709C476B6570C2AAE56@NIHCESMLBX5.nih.gov> |
| In-Reply-To: | <ggep9e$f5l$1@ger.gmane.org> |
| References: | <1227540449 DOT 7201 DOT 45 DOT camel AT LxPC35> <F0D7281DAB048B438E8F5EC4ECEFBDDC0337DE68 AT esmail DOT elsag DOT de> <1227542582 DOT 7201 DOT 51 DOT camel AT LxPC35> <1227542941 DOT 7201 DOT 55 DOT camel AT LxPC35> <ggep9e$f5l$1 AT ger DOT gmane DOT org> |
| From: | "Buchbinder, Barry (NIH/NIAID) [E]" <BBuchbinder AT niaid DOT nih DOT gov> |
| To: | <cygwin AT cygwin DOT com>, "Matthew Woehlke" <mw_triad AT users DOT sourceforge DOT net> |
| X-IsSubscribed: | yes |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Unsubscribe: | <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| X-MIME-Autoconverted: | from quoted-printable to 8bit by delorie.com id mAOMsdgO000464 |
The following may technically be off-topic. If so, I apologize.
Matthew Woehlke wrote on Monday, November 24, 2008 12:46 PM:
> Bartolomeo Nicolotti wrote:
>> but the command
>>
>> find . -type f | xargs md5sum
>>
>> has problems with blanks in the name of the files:
>> [snip examples]
>
> find . -type f -print0 | xargs -0 md5sum
I've found that find is significantly slower than native tools. (The following was run several times to fill any cached file system data.)
local hard disk (C:):
> time "$(cygpath -u "${COMSPEC}")" /c dir /s /b /a:-d | wc
16085 16308 690388
real 0m0.343s
user 0m0.122s
sys 0m0.170s
networked drive:
> time "$(cygpath -u "${COMSPEC}")" /c dir /s /b /a:-d | wc
1183 3093 66761
real 0m3.078s
user 0m0.075s
sys 0m0.108s
> time find . -type f | wc ")" /c d
1183 3093 53748
real 1m0.813s
user 0m0.216s
sys 0m8.046s
Therefore, you might consider using something like this if there are no symbolic links* and it doesn't offend your sensibilities. (* and other "oddities". I'm not sure how symbolic links work with find . -type f, so this might not be a problem.)
"$(cygpath -u "${COMSPEC}")" /c dir /s /b /a:-d | \
tr -s '\r\n' '\n' | \
cygpath -u -f - | \
tr '\n' '\0' | \
xargs -r0 md5sum
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |