Удалить каталоги из файла со списком каталогов

У меня есть список каталогов в текстовом файле, и каждый из них должен быть удален. Как я могу прочитать в этом списке в команду (rm -r или же rmdir)?

2 ответа

Решение

"Более правильное" решение будет следующим:

xargs -I{} rm -r {} < files

Это звонки rm -r, где {} заменяется именем файла.


Зачем? Передача файлов с пробелами в xargs приведет к неправильным аргументам. Допустим, ваш список файлов выглядит так:

/path/to/file 1
/path/to/file_2

затем xargs rm -r < list.txt попытался бы удалить /path/to/file, 1 а также /path/to/file_2, Определенно не то, что вы хотите. Всегда помните о пробелах в путях при передаче из команд в UNIX / Linux и обратно.

При условии, что у вас есть пути с пробелами в файле list.txt - один путь на строку. Тогда следующий способ вызова xargs сохранит пробелы:

cat list.txt | xargs -d \\n rm -r
Другие вопросы по тегам