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; не работает
  • Почему xargs -n 1 настолько медленный для длинных строк
  • Как вы можете перемещать или копировать определенные файлы из списка текстовых файлов
  • Как процитировать аргументы с помощью xargs
  • Пропустить входной файл через трубу в качестве аргумента?
  • Перемещение подкаталога в новый родительский каталог, где новое имя каталога увеличивается на 1
  • Удаление некоторых из самых больших файлов в каталоге
  • Grep каталог и возвращаемый список с номерами строк
  • Есть ли способ сделать этот однострочный лайнер быстрее?
  • используйте find и grep, чтобы найти строки, содержащие некоторую строку и не содержащие другую строку из файлов
  • grep для файлов и открыть итоговые совпадения
  • Как уменьшить количество исполнений с помощью xargs -I
  • 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 - лучшая ОС в мире.