Используя находку управляют с тестом-cnewer

Я пытаюсь понять вывод команды находки с -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

Вот вопросы, которые я имею:

  1. Что делает -cnewer искать? Это надеется видеть, изменилась ли метка времени метаданных, или это ищет, изменилось ли довольное метка времени? Это делает обоих? Я вполне уверен, это делает обоих, но я хотел бы быть уверенным.

  2. Если -cnewer оба, почему делают file1.txt закончить в выводе? Я могу понять почему file2.txt заканчивается в выводе, так как находка будет искать более свежее довольное метка времени, чем file1.txt, но я все еще не понимаю почему file1.txt заканчивается в выводе. В конце концов, нет никакого файла с более свежей меткой времени метаданных в ls -lhtc вывод, чем file1.txt.

2
задан 12 August 2017 в 04:47

1 ответ

Из руководства (полужирная шахта):

— Тест: -anewer файл
— Тест: -cnewer файл
— Тест: -newer файл
Верный, если к файлу в последний раз получили доступ (или его состояние, измененное, или он был изменен) позже, чем файл был изменен. [...]

Таким образом, тесты сравнивают atime, ctime и mtime соответственно с mtime указанного файла.

Если Вы хотите сравнить ctime с ctime, то используйте -newerXY тесты:

find . -newercc file1.txt

Так, -*newer тесты являются сокращением от -newer*m.

3
ответ дан 2 December 2019 в 02:46

Другие вопросы по тегам:

Похожие вопросы: