marquis wrote: > > I'm looking for an exisiting script, or a command to help w/ > > processing files by date. I have a test website and need to > > upload only the files that have been changed since the last > > upload. I'm thinking of creating a file list and the date of the > > last upload. if the modified date is after the date in this file, > > it would upload. Has anyone seen a script to do this? i found > > "test -nt" and "test -ot" but this is to compare two file dates, > > not a file to a stored date. ideas? thanks > > TMP=`ls -Aa` ; for x in $TMP ; do echo -n "$x - " ; stat $x | tac | head -1 ; > echo "" ; done
Hmm... I hate to sound too critical here but I can't restrain making comments about that command line. It is working very much too hard to perform the function of listing out a directory with the inode change timestamps listed. (And also that is not sufficient to solve the original poster's question either.) But back to that command line... > TMP=`ls -Aa` The ls -a option overrides the -A option. Therefore 'ls -Aa' is the same as 'ls -a'. But you probably wanted 'ls -A' there. > for x in $TMP ; do Of course files with whitespace in them cause trouble here. An extra splitting is introduced here that will split files with whitespace apart. > echo -n "$x - " Use of 'echo' with options is a portability nightmare. Better to use 'printf' in that case. > stat $x | tac | head -1 This is functionally the same as asking stat to output only the time of last change directly. stat --format %z $x > echo "" why the extra blank line? Overall this is almost the same as using 'ls' directly. ls -Aclog Bob