1

У меня есть каталог:

$ tree
.
|-- CVS
|   |-- Entries
|   |-- Entries.Log
|   |-- Repository
|   `-- Root
|-- dirA
|   |-- CVS
|   |   |-- Entries
|   |   |-- Repository
|   |   `-- Root
|   |-- file1
|   `-- file2
|-- dirB
|   |-- CVS
|   |   |-- Entries
|   |   |-- Repository
|   |   `-- Root
|   |-- file3
|   `-- file4
|-- file5
`-- file6

Я могу найти все файлы, которые хочу удалить, с помощью этой команды:

$ find . -name CVS -prune -o -type f -print

Но если я -print на -delete

$ find . -name CVS -prune -o -type f -delete

Все ушли. Зачем?

1 ответ1

3

Посмотрите справочные страницы для find , под- -delete:

При тестировании командной строки find, которую вы позже намереваетесь использовать с -delete, вы должны явно указать -depth, чтобы избежать последующих неожиданностей. Поскольку -delete подразумевает -depth, вы не можете использовать вместе -prune и -delete вместе.

Вы можете наиболее вероятно , просто использовать -exec rm {} + вместо -delete в этом контексте , чтобы делать то , что вы хотите, но , как всегда , когда играет с огнем: сделать очень уверен , что это работает , прежде чем в трудно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .