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

  • Почему «{}» и «%» обычно используются как переменные в xargs?
  • Найти файл, проверить размер и перезаписать, когда размер файла отличается
  • Есть ли способ манипулировать порядком аргументов stdin при использовании xargs, так же, как awk как $ 0, $ 1, $ 2 и т. Д.?
  • Как передать строки с одинарными кавычками в grep?
  • Список файлов с меткой времени с эпохи
  • xargs и <и> в те же файлы
  • Возможно ли, чтобы ls поддерживал порядок своих входов
  • Сколько способов конвертировать и передавать stdin в качестве параметра команды?
  • 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 - лучшая ОС в мире.