find's - cnewer quebrado em NTFS-3g?

1

Depois de extrair um arquivo para o lugar errado, pensei em apagar tudo criado depois dele, mas find . -cnewer archive.7z deu os resultados errados.

Então eu fiz um teste controlado por touch ing três arquivos e alterei seus ctime com mv para que eles estivessem na ordem oposta:

$ stat --printf '%n mod: %y chg: %z\n' oldest middle newest 
oldest mod: 21:57:13.935530400 chg: 22:05:48.369608300
middle mod: 21:58:23.939659500 chg: 22:05:09.911614500
newest mod: 21:59:33.943477100 chg: 22:04:55.869205500

(aparado para legibilidade)

Agora vamos testar -newer e -cnewer :

$ find . -type f -newer middle 
./newest

Ok.

$ find . -type f -cnewer middle 
./middle
./newest
./oldest

Não está bem.

De fstab e mount :

UUID=46A8DB5D20C177B0 /mnt/stuff  ntfs  rw,uid=ariel,fmask=027,dmask=027 0 0
/dev/sda1 on /mnt/stuff type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
    
por arielCo 08.02.2015 / 01:18

1 resposta

1

Leia a descrição da find manpage de -cnewer

-cnewer file

File's status was last changed more recently than file was modified.

Ênfase minha.

Todos os arquivos foram modificados antes das 22:00 e foram alterados depois das 22:00, então todos foram alterados depois que qualquer um deles foi modificado . Assim, eles estão todos listados.

Então o resultado parece correto.

Se isso torna -cnewer útil ou não, é uma questão diferente!

    
por 09.02.2015 / 04:02