Я пытаюсь понять вывод команды находки с -cnewer
тест. В выполнении некоторого ограниченного тестирования это - то, что я получаю.
Во-первых, я создал файл:
cd ~/Documents
touch file1.txt
Затем я ожидал несколько минут прежде, чем создать другой файл:
touch file2.txt
Затем я решил сравнить довольное метка времени с меткой времени метаданных путем выполнения:
ls -lht (for content timestamp)
-rw-rw-r-- 1 mason mason 0 Aug 11 01:19 file2.txt
-rw-rw-r-- 1 mason mason 0 Aug 11 01:17 file1.txt
И затем:
ls -lhtc (for metadata timestamp)
-rw-rw-r-- 1 mason mason 0 Aug 11 01:19 file2.txt
-rw-rw-r-- 1 mason mason 0 Aug 11 01:17 file1.txt
До сих пор никакие неожиданности, так как я не сделал ничего для изменения метки времени метаданных.
Теперь, если я ввожу:
chmod 664 file1.txt
изменить метку времени метаданных и затем посмотреть на вывод снова:
ls -lhtc
-rw-rw-r-- 1 mason mason 0 Aug 11 01:23 file1.txt
-rw-rw-r-- 1 mason mason 0 Aug 11 01:19 file2.txt
file1.txt
появляется в первом положении в ls -lhtc
вывод, но все еще во втором положении в ls -lht
вывод, также как ожидалось.
Наконец, если я решаю ввести:
cd ~/Documents
find . -cnewer file1.txt
Я добираюсь:
.
./file2.txt
./file1.txt
Вот вопросы, которые я имею:
Что делает -cnewer
искать? Это надеется видеть, изменилась ли метка времени метаданных, или это ищет, изменилось ли довольное метка времени? Это делает обоих? Я вполне уверен, это делает обоих, но я хотел бы быть уверенным.
Если -cnewer
оба, почему делают file1.txt
закончить в выводе? Я могу понять почему file2.txt
заканчивается в выводе, так как находка будет искать более свежее довольное метка времени, чем file1.txt
, но я все еще не понимаю почему file1.txt
заканчивается в выводе. В конце концов, нет никакого файла с более свежей меткой времени метаданных в ls -lhtc
вывод, чем file1.txt
.
Из руководства (полужирная шахта):
— Тест:
-anewer
файл
— Тест:-cnewer
файл
— Тест:-newer
файл
Верный, если к файлу в последний раз получили доступ (или его состояние, измененное, или он был изменен) позже, чем файл был изменен. [...]
Таким образом, тесты сравнивают atime, ctime и mtime соответственно с mtime указанного файла.
Если Вы хотите сравнить ctime с ctime, то используйте -newerXY
тесты:
find . -newercc file1.txt
Так, -*newer
тесты являются сокращением от -newer*m
.