Передайте несколько аргументов одной команде в произвольной позиции xargsLinux

Ответить Пред. темаСлед. тема
Anonymous
 Передайте несколько аргументов одной команде в произвольной позиции xargs

Сообщение Anonymous »

Я хочу выполнить команду, в которой аргументы представлены в виде одной строки, но они должны находиться в произвольной позиции. Например. в следующем примере я хочу, чтобы аргументы располагались перед любыми фиксированными аргументами, которые я написал после команды cp, то есть аргумента пути /somedir
Я хочу:

Код: Выделить всё

echo -n 'file1 file2 file3' | xargs -d ' ' -I{} cp {} /somedir
вести себя следующим образом:

Код: Выделить всё

cp file1 file2 file3 /somedir
но это не так...
Это также выглядит так: при включении опции -I{} параметр -d Параметр заставляет xargs вести себя по-другому. Похоже, что он пытается передать каждый аргумент в отдельный вызов команды, а не все в один.
Например, это работает:

Код: Выделить всё

echo -n 'file1 file2' | xargs -d' ' diff
Но это не получается

Код: Выделить всё

echo -n 'file1 file2' | xargs -d' ' -I{} diff {}
С ошибкой:

Код: Выделить всё

diff: missing operand after 'file1'
diff: Try 'diff --help' for more information.
diff: missing operand after 'file2'
diff: Try 'diff --help' for more information.
Как получить echo -n 'file1 file2 file3' | xargs -d ' ' -I{} cp {} /somedir, чтобы вести себя так, как задумано

Подробнее здесь: https://stackoverflow.com/questions/787 ... tion-xargs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»