2011-12-01 11 views
21

Quiero enumerar todos los archivos modificados en los últimos 5 minutos, sin incluir los directorios .svn.Lista de todos los archivos modificados en los últimos 5 minutos, excluyendo directorios .svn

He trabajado en conjunto la siguiente secuencia de comandos que no parece cumplir con ningún -atime o -ctime params.

find . -atime -5m -type d -name .svn -prune -o -type f -print 

me siento como yo estoy cavando en un agujero que un par de ojos extra podría detectar fácilmente.

Respuesta

27

Pruebe con otro orden de argumentos. Su comando:

  • Si se accede a una entrada dentro de los cinco minutos y es un directorio y tiene el nombre .svn, entonces la entrada se ignora
  • de otro modo, para todos los demás casos, si es un archivo, imprimir el nombre

los siguientes ciruelas comando .svn directorios antes de descender en ellos:

find . -type d -name .svn -prune -o -mmin -5 -type f -print 

Si un archivo es un directorio y tiene el nombre .svn, ignorarlo y no descienden en ella tampoco. De lo contrario, si se modificó por última vez (-mmin) en 5 minutos y un archivo, imprima el nombre del archivo.

+0

Gracias, esto hizo el truco bastante agradable. La explicación es fundamental para ayudarme a entender lo que estaba haciendo mal. –

1

-atime mira la hora accedida por última vez. Creo que estás buscando -mmin. Sólo tengo cygwin mano así que no puedo probarlo ...

1

-and se asume entre -atime y -type d, por lo que está podando sólo directorios SVN mayor que 5 minutos. Pruebe:

find . -type d -name .svn -prune -o -type f -mmin 5 -print 
Cuestiones relacionadas