Я хочу удалить все файлы с заданным именем во всех подкаталогах моего домашнего каталога.
Я пытался:
rm -r file
в моем домашнем каталоге, но он не работал, потому что этот файл не существует в этом каталоге.
find . -name "filename" -delete
В качестве уточнения ответа @ tante, вы можете убедиться, что используемый список файлов корректен перед удалением этих файлов:
find <source_dir> -name <filename> -print
если проверка показывает действительный список, то
find <source_dir> -name <filename> -delete
другой вариант, если вы хотите получить это во многих каталогах, используя каталог временного хранения:
mkdir <dest_dir>
for i in <list_of_directories>
do
find "$i" -name <filename> -exec /bin/mv {} <dest_dir>
done
# check dest_dir
ls dest_dir
rm -rf <dest_dir>
Как всегда, пожалуйста, убедитесь в точности любых скриптов перед выполнением и всегда имейте готовую резервную копию на случай, если что-то пойдет не так.