как мне написать выражение поиска (atime = ctime) (время доступа = время изменения)

как мне написать выражение поиска (atime = ctime) (время доступа = время изменения)

Я хочу найти набор файлов для удаления, к которым не было доступа с момента последнего изменения их inode. Файлы, в которых последняя активность произошла, когда они были перемещены в каталог, в котором они находятся в данный момент.

Здесь я пытаюсь передать каждый файл как справочный файл для теста find -newer

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

Это то, что я уже пробовал, но это не сработало.

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

решение1

Это даст вам все файлы, которые отличаются между atime и ctime:

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

Посмотрите этот пример:

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

Теперь посмотрим на статистику файла:

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

Я разделяю каждое поле новой строкой, а каждую запись пустой строкой, чтобы облегчить последующую обработку с помощью awk: awk 'BEGIN {FS="\n"; RS=""}; $2!=$3 {print $1}'
Здесь разделитель полей и разделитель записей установлены в начале (RS интерпретирует пустую строку как пустую строку). Это означает, что $2 и $3 содержат atime и ctime. Если они различаются, выводится соответствующее имя файла (в $1).

Результат здесь:

./data1

Связанный контент