xargs: Имеет ли порядок вариантов?

Вход 0

echo foo | xargs -L 1 -I '{}' echo '{}' 

Выход 0

 foo 

Вход 1

 echo foo | xargs -I '{}' -L 1 echo '{}' 

Выход 1

 {} foo 

Почему изменение порядка параметров xargs изменяет результат?

Версия: xargs (GNU findutils) 4.6.0

  • Как интерактивно удалить все каталоги, соответствующие заданным критериям?
  • найти . . * -тип f -print0 | xargs -0 sudo chmod 664; не работает
  • Ускорение команды поиска rm с проверкой путем распараллеливания
  • Добавить суффикс ко всем файлам без определенного расширения и сохранить расширение файла
  • Есть ли способ сделать этот однострочный лайнер быстрее?
  • Как создать бесконечный поток строк в bash
  • Правильно избегая выхода из трубы в xargs
  • cmd2 `cmd1` vs cmd1 | xargs cmd2
  • Содержимое выходного файла с grep вместе с именем каталога
  • Как удалить файлы, отфильтрованные awk
  • Найдите строку в файле и переименуйте несколько файлов в результаты
  • Проверьте содержимое файла, ищущего повреждение, размер файла указывает размер «ноль»
  • One Solution collect form web for “xargs: Имеет ли порядок вариантов?”

    Когда параметры, заданные для xargs, конфликтуют, порядок может иметь значение.

    IEEE Std 1003.1-2008, 2016 Edition / Open Group Base Specifications В выпуске 7 добавлен следующий текст 1 к спецификации xargs:

    Параметры -I , -L и -n являются взаимоисключающими. В некоторых реализациях используется последний, указанный, если в командной строке указано более одного; другие реализации рассматривают комбинации вариантов по-разному.

    Это кодирует поведение многих реализаций xargs, возвращаясь к исходной версии в PWB / Unix, чья справочная страница говорит

    Когда есть конфликты с флагом (например, -l vs. -n ), последний флаг имеет приоритет.

    В GNU-версии xargs -L отключает любую предыдущую опцию -I . Итак, во втором примере,

     echo foo | xargs -I '{}' -L 1 echo '{}' 

    {} – просто обычный аргумент, переданный в echo , без подстановки.

    [1] По сравнению с IEEE Std 1003.1, 2004 Edition / Open Group Base Specifications Issue 6 .

    Linux и Unix - лучшая ОС в мире.