find delete mostra “Nenhum tal arquivo ou diretório”

2

Acabei de executar um comando para "localizar e excluir arquivos e pastas com mais de 100 dias" em uma pasta e obter o seguinte:

$ find . * -mtime +100 -delete
find: May_01_2015: No such file or directory
find: May_02_2015: No such file or directory
find: May_03_2015: No such file or directory
find: May_04_2015: No such file or directory
find: May_05_2015: No such file or directory
find: May_06_2015: No such file or directory
find: May_07_2015: No such file or directory
find: May_08_2015: No such file or directory
find: May_09_2015: No such file or directory
find: May_10_2015: No such file or directory

Os nomes das pastas estão corretos (eles devem ser excluídos), mas por que está reclamando que não foi possível encontrar essas pastas? (eles estavam lá)

Além disso, é interessante quando faço:

$ find "$(pwd)" * -mtime +200 -print

Às vezes, vejo o mesmo arquivo listado duas vezes. Eu me pergunto se essa é a razão. Por que ele está passando pelo mesmo arquivo duas vezes?

    
por Amelio Vazquez-Reina 26.08.2015 / 02:30

2 respostas

4

Você não precisa de .* com find e o espaço entre . e * costuma ser um erro, pois o * expandirá para cada entrada no diretório atual e informará find para usar isso como um caminho para pesquisar. É também por isso que o seu outro find às vezes mostra arquivos duas vezes. Se o j$(pwd) realmente corresponder a um arquivo, ele também será correspondido por * .

Assim, a sua exclusão provavelmente será melhor:

find . -mtime +100 -delete

Embora você queira fazer isso com -print para ter certeza de obter o que deseja antes de excluí-los, é claro.

    
por 26.08.2015 / 02:35
-1
100 Days = 144,000 Minutes = 144000 Minutes -daystart Measure times (for -amin, -atime, -cmin, -ctime, -mmin, and -mtime) from the beginning of today rather than from 24 hours ago. This option only affects tests which appear later on the command line. find "$(pwd)" -daystart -amin +144000 -exec ls -ltrio {} +
    
por 19.01.2017 / 02:19