bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ls -l|head seems to look at all files in directory


From: Jim Meyering
Subject: Re: ls -l|head seems to look at all files in directory
Date: Mon, 25 May 2009 17:06:43 +0200

Reuben Thomas wrote:
> On Mon, 25 May 2009, Jim Meyering wrote:
>
>> Reuben Thomas wrote:
>>
>>> On Mon, 25 May 2009, Jim Meyering wrote:
>>>
>>>> To do what he wants you have to know that ls -1U is the only
>>>> way to get one output entry per readdir call.
>>>>
>>>> Reuben, you want to do it like this:
>>>>
>>>>  ls -1U|head|xargs ls -l
>>>
>>> Thanks for the hint about -1, but this doesn't seem to make any
>>> difference: I run "ls -1U|head" in a directory with lots of files
>>> (about 10,000) and it pauses for a minute or so before giving me my
>>> ten lines of output.
>>>
>>> If I run the command again, then of course it runs almost instantly,
>>> so I'm not sure what use the loops are in the tests you give.
>>
>> That amount of delay suggests you're using an old ext2 or ext3 file system.
>> What FS type, distro, kernel, and mount options?
>
> Linux 2.6.26, Debian lenny, reiserfs with mount options defaults,user_xattr.

I get nowhere near 1-minute times for directories with
that many entries on a reiserfs file system.
Though my kernel is 2.6.29-1-amd64, and the file system
is not very old: I reformatted it about 4 months ago.

I'm seeing consistent times < 0.1s for directories containing
up to 20,000 entries.

try running this:

   strace -c ls -1U

that should tell you which syscalls are taking the most time.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]