Как удалить файлы из списка?
Команда rm не принимает перенаправление ввода, поэтому rm < files-to-remove.txt работать не будет.
Можно использовать:
- rm `cat files-to-remove.txt`
- xargs rm < files-to-remove.txt
- Небольшой скрипт:
foreach i (`cat files-to-remove.txt`)
rm $i
end
Аналогично можно удалить файлы, отобранные командой grep:
rm `ls | grep 123`
Рубрики:HOW-TO, Unix and Linux
Команда rm `ls | grep 123` не всегда сможет справиться со своей задачей. Она не сможет обработать файлы с пробелами в названии. Скажем, файл вида «123 321» она найдет, но воспримет 123 и 321 как 2 разных названия и попытается удалить их вместо того, что нужно. Поэтому в таких случаях я пользуюсь командой
ls -1 | while read i; do rm «$i»; done
тьфу. Я, конечно же, имел в виду
ls -1 | grep 123 | while read i; do rm «$i»; done