Использование команды find с тестом -cnewer

Я пытаюсь понять вывод команды find с -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 попадает в вывод, так как find будет искать более позднюю file1.txt метку контента, чем file1.txt , но я до сих пор не понимаю, почему file1.txt попадает в вывод. В конце концов, нет файла с более поздней меткой метаданных в ls -lhtc чем file1.txt .