Как выполнить команду в списке имен файлов в файле?

Я перечислил имена файлов, которые нужно удалить в файл. Как передать файл команде rm чтобы он удалял их один за другим.

  • Удалить соответствующий файл из каждой подпапки текущего каталога
  • Что происходит шаг за шагом при использовании «rm -rf directory»?
  • Что делать после отмены «rm -rf / usr /» на Arch?
  • Почему rmdir и unlink два отдельных системных вызова?
  • tee -a не воссоздает файл
  • Как безопасно удалить обычный каталог, содержащий несколько снимков btrfs внутри него?
  • Есть ли инструмент для создания жесткой ссылки на несвязанный индексный дескриптор?
  • Предотвращение удаления папок с псевдонимом system / shell aliased
  • 2 Solutions collect form web for “Как выполнить команду в списке имен файлов в файле?”

    Если у вас есть один файл на строку, один из способов сделать это:

     tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm -- 

    Список файлов задается как вход в команду tr которая изменяет разделитель файлов от linefeed до нулевого байта, и команда xargs считывает файлы, разделенные нулевыми байтами на входе, и запускает команду rm с файлами, добавленными в качестве аргументов.

    Вышеупомянутый ответ хорош тем, что он отлично подходит для обработки имен файлов с пробелами и «странными символами». Но самый простой способ, если имена файлов являются нормальными, – это просто (предупреждение, бахизм!):

     rm $(< /the/file/with/names) 

    Для обычной оболочки:

     rm `cat /the/file/with/names` 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.