about administration

Заметки о системном администрировании

Как удалить файлы из списка?

with 2 comments

Команда rm не принимает перенаправление ввода, поэтому rm < files-to-remove.txt работать не будет.

Можно использовать:

  1. rm `cat files-to-remove.txt`
  2. xargs rm < files-to-remove.txt
  3. Небольшой скрипт:
    foreach i (`cat files-to-remove.txt`)
    rm $i
    end

Аналогично можно удалить файлы, отобранные командой grep:

rm `ls | grep 123`

Написано Sharm

Май 13, 2008 в 6:43 пп

Опубликовано в HOW-TO, Unix and Linux

2 коммент.

Подписаться на комментарии по RSS.

  1. Команда rm `ls | grep 123` не всегда сможет справиться со своей задачей. Она не сможет обработать файлы с пробелами в названии. Скажем, файл вида “123 321″ она найдет, но воспримет 123 и 321 как 2 разных названия и попытается удалить их вместо того, что нужно. Поэтому в таких случаях я пользуюсь командой

    ls -1 | while read i; do rm “$i”; done

    Starlite

    Май 15, 2008 в 11:17 дп

  2. тьфу. Я, конечно же, имел в виду
    ls -1 | grep 123 | while read i; do rm “$i”; done

    Starlite

    Май 15, 2008 в 11:21 дп


Ответить