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

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

  • Как удалить к сожалению именованную папку?
  • удалил бродячий файл и теперь вижу .nfs0000000000b869e300000001?
  • Удаление файла в особых условиях, если возможно, рекурсивно
  • Я случайно выполнил rm -rf / * (не как root). Что я могу исправить?
  • В чем причина этой конкретной «rm» последовательности в шутке xkcd?
  • Рекурсивный rm для меня не работает
  • Что делать после отмены «rm -rf / usr /» на Arch?
  • Почему rm медленно?
  • 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` 
    Linux и Unix - лучшая ОС в мире.