Estou tentando entender a saída do comando find com o -cnewer
test. Ao fazer alguns testes limitados, é isso que eu recebo.
Primeiro, criei um arquivo:
cd ~/Documents
touch file1.txt
Depois, esperei alguns minutos antes de criar outro arquivo:
touch file2.txt
Depois, decidi comparar o registro de data e hora do conteúdo com o registro de data e hora dos metadados ao fazer isso:
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
E então:
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
Até agora não há surpresas, já que não fiz nada para alterar o registro de data e hora dos metadados.
Agora, se eu digitar:
chmod 664 file1.txt
para alterar o registro de data e hora dos metadados e, em seguida, observe a saída novamente:
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
aparece na primeira posição na saída ls -lhtc
, mas ainda na segunda posição na saída ls -lht
, também como esperado.
Finalmente, se eu decidir digitar:
cd ~/Documents
find . -cnewer file1.txt
Eu recebo:
.
./file2.txt
./file1.txt
Aqui estão as perguntas que tenho:
-
O que -cnewer
procura? Ele verifica se o registro de data e hora dos metadados foi alterado ou se o registro de data e hora conteúdo foi alterado? Isso faz as duas coisas? Tenho certeza de que faz as duas coisas, mas gostaria de ter certeza.
-
Se -cnewer
fizer as duas coisas, por que file1.txt
acaba na saída? Entendo porque file2.txt
acaba na saída, pois find procurará por um timestamp de conteúdo mais recente que file1.txt
, mas ainda não entendi porque file1.txt
acaba na saída. Afinal, não há nenhum arquivo com um carimbo de data e hora de metadados mais recente na ls -lhtc
output do que file1.txt
.