¿Cómo escribo la expresión de búsqueda (atime = ctime) (tiempo de acceso = tiempo de cambio)?

¿Cómo escribo la expresión de búsqueda (atime = ctime) (tiempo de acceso = tiempo de cambio)?

Quiero encontrar un conjunto de archivos para eliminar a los que no se ha accedido desde su último cambio de inodo. Archivos en los que ocurrió la última actividad cuando se movieron al directorio en el que se encuentran actualmente.

Aquí intento pasar cada archivo como archivo de referencia para la prueba de búsqueda -más reciente

man find 
...
-newerXY reference
          Compares  the timestamp of the current file with reference.   
...    

Esto es lo que he probado hasta ahora pero no funciona.

find . -type f | xargs -I{} find -newerac {} -printf "%p\tinode: %i\naccess: \t%a\nchange: \t%c\n"

Respuesta1

Esto le brinda todos los archivos que difieren entre atime y ctime:

find . -type f -printf "%p\n%a\n%c\n\n" | \
  awk 'BEGIN {FS="\n"; RS=""}; $2!=$3 {print $1}'

Vea este ejemplo:

ls -1
data
data1
ss.08-02-2012-01.22.16-PM.png
ss.09-02-2012-13.42.06-PM.png
test.awk
test.py
test.sh

Ahora mira las estadísticas del archivo:

find . -type f -printf "%p\n%a\n%c\n\n"
./test.sh
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./data1
Tue Aug 21 15:13:13.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./test.awk
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./data
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./test.py
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./ss.09-02-2012-13.42.06-PM.png
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./ss.08-02-2012-01.22.16-PM.png
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

Separo cada campo con una nueva línea y cada registro con una línea en blanco para facilitar el siguiente procesamiento con awk: awk 'BEGIN {FS="\n"; RS=""}; $2!=$3 {print $1}'
aquí el separador de campo y el separador de registros se establecen al principio (RS interpreta una cadena vacía como una línea en blanco). Eso significa que $2 y $3 mantienen el atime y el ctime. Si difieren, se imprime el nombre de archivo correspondiente (en $1).

El resultado aquí es:

./data1

información relacionada