Date: Mon, 2 Jan 2006 09:14:56 -0800 (PST) From: Adam Nealis <adamnealis@yahoo.co.uk> To: Drew Tomlinson <drew@mykitchentable.net>, Kevin Brunelle <kruptos@mlinux.org> Cc: freebsd-questions@freebsd.org Subject: Re: Find Syntax Message-ID: <20060102171456.25239.qmail@web86911.mail.ukl.yahoo.com> In-Reply-To: <43B95CEA.5010208@mykitchentable.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--- Drew Tomlinson <drew@mykitchentable.net> wrote: > On 1/2/2006 8:37 AM Kevin Brunelle said the following: > > >On Monday 02 January 2006 11:19, Drew Tomlinson wrote: > > > > > >>I'm trying to find all files with a modification time older than three > >>weeks ago. In reading the find man page and searching Google, it seems > >>the time returned by 'ls -l' is mtime. Thus I construct the following > >>command: > >> > >>find . -not \( -newermt 3w \) -exec ls -l {} \; > >> > >>But it returns files that are newer: > >> > >>-rw------- 1 nobody nobody 35292 Dec 29 08:43 totContactedRcvdPeers.rrd > >>-rw------- 1 nobody nobody 35292 Dec 29 08:43 totContactedSentPeers.rrd > >>-rw------- 1 nobody nobody 35292 Dec 29 08:33 > >>./dc0/hosts/207/106/6/90/pktSent.rrd > >> > >>I've tried various placement of the '-not' and the )'s but I can't get > >>it right. What am I missing? > >> > >> > > > >Have you tried > > > >find . -mtime +3w > > > >I don't know about the other syntax but this is what I find to be the > >simplest. > > > > > > Thanks for your reply. I tried your syntax as: > > find . -mtime +3w -exec ls -l {} \; > > It returned nothing as I expected. But then reduced it to one week as: > > find . -mtime +1w -exec ls -l {} \; > > which didn't seem to work because these (amongst many others) were returned: > > drwx------ 2 nobody nobody 512 Dec 27 14:03 102 > total 2 > drwx------ 3 nobody nobody 512 Dec 26 08:03 9 > total 2 > drwx------ 2 nobody nobody 512 Dec 26 08:03 7 > total 432 > -rw------- 1 nobody nobody 35292 Jan 2 07:41 bytesRcvd.rrd > -rw------- 1 nobody nobody 35292 Jan 2 07:41 bytesRcvdLoc.rrd > -rw------- 1 nobody nobody 35292 Jan 2 07:41 bytesSent.rrd > > Any ideas why this might be? if you do ls -l /a/directory/name you get directory contents. Is it possible that your "-exec ls -l {} \;" is listing directory contents? To see what I mean, compare these commands: cd /usr/ports/arabic find . -exec ls -l {} \;|wc 121 991 6569 find . -exec ls -ld {} \;|wc 61 549 3942 find . -ls | wc 61 671 6617 If you only want files, and you really have to use -exec ls, you can do find . -type f -mtime +1w -exec ls -l {} \; __________________________________ Yahoo! for Good - Make a difference this year. http://brand.yahoo.com/cybergivingweek2005/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060102171456.25239.qmail>