Оболочка Передача данных в середине другой команды - PullRequest
0 голосов
/ 15 сентября 2011

Если мне нужны скрипты, как показано ниже:

find -name 'lib*.so' | xargs cp <files> ~/libs/.

Где <файлы> - это файл, который я нашел из предыдущей команды поиска. В основном я хочу передать данные не только в конце, но и где-то посередине. (Что-то вроде 1 $ ???)

Я понимаю, что у меня может быть небольшой sh-файл, где я могу иметь это в переменной и использовать для цикла и использовать эту переменную .... Но то, что я хочу, является простым, как я объяснил выше. Где простые задачи могут быть выполнены легко.

Примечание. Сценарий, приведенный выше, является только указанием типа Проблемы и фактической проблемы.

Дайте мне знать, если это возможно.

Ответы [ 3 ]

1 голос
/ 15 сентября 2011

Если вы просто хотите сделать копию

find -name 'lib*.so ' -print0 | xargs -r0 cp --target ~/libs/
1 голос
/ 16 сентября 2011

Вы можете сделать это, используя только поиск, не вызывая cp(1) для каждого файла, выполнив:

find -name 'lib*.so' -exec cp -t ~/libs {} +

Обратите внимание, что это работает только с GNU cp и POSIX 2008-совместимым поиском, как GNU find.

0 голосов
/ 15 сентября 2011

Я надеюсь, я понимаю, что вы пытаетесь сделать здесь ...

Вы можете сделать это, используя только поиск.

find -name 'lib*.so' -exec cp {} ~/libs/ \;
...