Вопрос

Я хочу составить список файлов вывода местоположения. Я хочу scp чтобы взять список.

Я не уверен насчет синтаксиса. Моя попытка с псевдокодом

locate labra | xargs scp {} masi@11.11.11:~/Desktop/

Как перемещать файлы в пункт назначения?

Это было полезно?

Решение

Как правило, {} найтиISM:

find ... -exec cmd {} \;

Где {} - текущий файл, над которым работает.

Ты можешь получить Ксаргс вести себя похожим с:

locate labra | xargs -I{} echo {} more arguments

Тем не менее, вы быстро заметите, что он запускает команды несколько раз вместо одного вызова SCP.

Итак, в контексте вашего примера:

locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/

Обратите внимание на одиночные кавычки вокруг {}, так как это будет полезно для путей с пробелами в них.

Другие советы

XARGS обычно принимает столько аргументов, которые он может соответствовать в командной строке, но используя -i, он внезапно принимает только один. GNU Параллель http://www.gnu.org/software/parallel/ может быть лучшим решением:

locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/

Поскольку вы смотрите на SCP, могу я предложить вам также проверить RSYNC?

locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top