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

Демон похож на любую другую программу, записанную из исходного кода и скомпилированную в формат исполняемых файлов, это может быть сделано принять аргументы, обработать аргументы, например, для использования их в качестве переключателей определения аргумента или самих аргументов. Различие между демоном и программой может быть в сущности, что режим демона программы переключает задачи в фоновый режим и дополнительно зависит требование сервиса, должен послушать на сетевом интерфейсе и принять запросы по проводу. Так передача аргументов от командной строки на приглашении оболочки или прямо после определения пути исполняемого файла демона в сценарии является тем же. Метод конфигураций или переменных, которые используются в сценарии оболочки для вызова демона с необходимыми аргументами однако, мог бы отличаться через по стилю или конвенции. Важно прочитать руководство, если это обеспечивается, для знания, какие аргументы приняты исполняемым файлом демона или программой и знают то, что является ими используемый прежде, чем ввести их в эксплуатацию в выполнении, чем просто предоставление возможностей.

11
21.02.2013, 09:10
2 ответа

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

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

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

11
27.01.2020, 19:58
  • 1
    я также предложил бы использовать rm -- вместо просто rm, так, чтобы имена файлов, которые могут запуститься с тире, не рассматривали бы как rm параметры. –  artyom 21.02.2013, 09:13
  • 2
    Это не работало приятель........ TR: дополнительный операнд monu.txt' Try TR - помогает' для получения дополнительной информации. комната: недостающая комната 'Попытки операнда - помогает' для получения дополнительной информации......... Это - весь wat, который я могу видеть –  monu 21.02.2013, 09:24
  • 3
    Вы, возможно, отсутствовали <прежде чем имя файла? –  Jonas Berlin 21.02.2013, 09:24
  • 4
    я улучшил команду xargs немного также - добавленный - согласно предложению @artyom и добавил-r, чтобы удостовериться, что это не выполняет комнату, при отсутствии файлов для удаления. –  Jonas Berlin 21.02.2013, 09:26

Вышеупомянутый ответ прекрасен в этом, он идет на многое для обработки filesnames с пробелами и "странными символами". Но самый простой путь, если имена файлов нормальны, просто (предупреждение, bashism!):

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

Для регулярной оболочки:

rm `cat /the/file/with/names`
5
27.01.2020, 19:58

Теги

Похожие вопросы