Help finding files with shell script

Cameron Simpson cs at zip.com.au
Sat Sep 15 22:57:29 UTC 2007


On 15Sep2007 20:00, Paul Ward <pnward at googlemail.com> wrote:
| Hi All,
| 
| Anyone know an easy way of finding files in a directory that have been
| created within 24 hours but are not being written to.
| 
| The only way I can think of doing this is as follows
| 
| eg (Not sure of my syntax yet as this is just theoretical)
| crond to run at 00:01
| find /myth/recordings/ -maxdepth 1 -name '*' -mtime -1|grep
| ".mpg"|grep -v ".png" > file1
| find /myth/recordings/ -maxdepth 1 -name '*' -atime -5|grep
| ".mpg"|grep -v ".png" > file2
| then somehow remove files2 from files1 list and do a for i in `cat file1`;do etc
| 
| There must be a better way of doing this?

As Robert Day says, UNIX files don't have creation times. They have a ctime
which is "last change to inode" - it updates on chmod, rename etc.

But pretending ctime is creation time, which may be close enough for
your purposes:

  find /myth/recordings/ -maxdepth 1 -name \*.mpg -ctime -1 ! -mtime -1 -print

remarks. Your '-name "*"' seems redundant.

If you do end up comparing lists (should not be necessary for your problem,
since you can do all the testing with find), "sort" and "comm"
are your friends.
-- 
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/

Try not to get sucked into the vortex of hell, Billy!
        - MST3K, "Megalon vs. Godzilla"




More information about the fedora-list mailing list