Date: Sat, 3 Nov 2007 21:07:18 +0100 From: cpghost <cpghost@cordula.ws> To: John Nielsen <lists@jnielsen.net> Cc: White Hat <pigskin_referee@yahoo.com>, Daniel Bye <freebsd-questions@slightlystrange.org>, freebsd-questions@freebsd.org Subject: Re: Determining the number of files in a directory Message-ID: <20071103210718.6b12f46e@epia-2.farid-hajji.net> In-Reply-To: <200711031044.43523.lists@jnielsen.net> References: <538619.51984.qm@web34408.mail.mud.yahoo.com> <20071103124151.GA3207@torus.slightlystrange.org> <20071103124932.GB3207@torus.slightlystrange.org> <200711031044.43523.lists@jnielsen.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 3 Nov 2007 10:44:43 -0400 John Nielsen <lists@jnielsen.net> wrote: > On Saturday 03 November 2007, Daniel Bye wrote: > > On Sat, Nov 03, 2007 at 12:41:51PM +0000, Daniel Bye wrote: > > > On Sat, Nov 03, 2007 at 05:27:06AM -0700, White Hat wrote: > > > > This is probably a dumb question; however, I never let a little > > > > thing like that bother me in the past. > > > > > > Heheh! You and many more, my friend, myself absolutely included! > > > > > > > Using FreeBSD-6.2 and Bash, how do I determine the number of > > > > files in a given directory? I have tried all sorts of > > > > combinations using different flags with the 'ls' command; > > > > however, none of them displays the number of files in the > > > > directory. > > > > > > $ ls | wc -l > > > > > > will show you how many files and directories in the current > > > (target) directory. To count just files, and exclude directories, > > > you could try something like > > > > > > $ find /target/directory -type f -print | wc -l > > > > Except of course, that would descend into the subdirectories you're > > trying not to count... Sorry - an object lesson in not hitting send > > before you've tested what you scribbled. > > find /target/directory -type f -maxdepth 1 | wc -l > > should do the trick. See also man find and man wc, of course. That's better than ls(1), which is terribly slow at displaying (actually: at sorting) large directories. In this case, better turn off sorting with 'ls -f': $ time ls -f /usr/local/news/News | wc -l 0.42 real 0.29 user 0.07 sys 35935 $ time ls /usr/local/news/News | wc -l 147.02 real 33.92 user 0.07 sys 35935 -cpghost. -- Cordula's Web. http://www.cordula.ws/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071103210718.6b12f46e>