Вывод SCP местоположение XARGS
Вопрос
Я хочу составить список файлов вывода местоположения. Я хочу 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/