Как предотвратить "найти" погружение глубже, чем текущий каталог - PullRequest
0 голосов
/ 22 декабря 2010

У меня есть много каталогов с большим количеством файлов внутри.

Я только что сжал этот каталог соответственно, став filename.tar.gz, someothername.tar.gz и т. Д.

После сжатия я используюэтот bash для удаления всего, кроме имени файла, содержит .tar.gz:
find . ! -name '*.tar.gz*' | xargs rm -r

Но проблема в том, что find слишком глубоко погрузится в каталог.Поскольку каталог был удален, но find будет углубляться в каждый каталог, отображается много сообщений, таких как:

rm: cannot remove `./dirname/index.html': No such file or directory

Так, как предотвратить погружение find глубже, чем этот уровень (текущий каталог)?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Вы можете сказать, найдите максимальную глубину для рекурсии:

find -maxdepth 1 ....
0 голосов
/ 22 декабря 2010

Вы можете использовать ls вместо find для вашей проблемы:

ls | grep -v .tar.gz | xargs rm -rf
...