3

Я хотел бы найти в моем /home/user определенное имя папки и удалить его и все его содержимое. Существует вероятность того, что мы найдем несколько экземпляров одной и той же папки во многих папках в /home/user

Как мне поступить об этом: Примечание: Использование PuTTY.

4 ответа4

6

Попробуйте это так:

find /home/user -type d -iname "searchdir" -exec rm -ir "{}" \;

Find find /home/user для всех каталогов, содержащих searchdir и выполнит rm -ir для всех из них. Для каждого каталога вам будет предложено удалить его или нет (-i после rm делает это).

Ох ... и вы можете добавить -d 1 чтобы find должен ли он выполнять поиск только на самом верхнем уровне иерархии.

1

Команда для поиска папки с определенным именем:

find -type d -name "YOUR_NAME" -print0 | xargs -r0 rm -rf

Приведенная выше команда может избежать слишком длинного списка аргументов:- https://stackoverflow.com/questions/7037618/how-much-should-i-worry-about-argument-list-too-long/7037640#7037640

И, наконец, если у вас есть доступ не-root, вы, скорее всего, получите отказ в доступе.

0

используйте команду "найти", найдите учебник по ней. очень мощный инструмент, который вы должны знать.

0

Ну, используя

find /home/user -name 'dir_name' -type d

принесет все каталоги, соответствующие dir_name . Таким образом, вы можете использовать xargs и рекурсивно удалять его.

find /home/user -name 'dir_name' -type d | xargs rm -r

Но перед запуском вышеуказанной команды проверьте, возвращает ли команда find все результаты правильно. Если вы позволите мне дать совет: вместо использования rm -r используйте mv и переместите ваши файлы в другую папку, чтобы ничего не потерялось при возникновении проблем.

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