我想列出定位输出的文件。我scp
想拿清单。
我不确定语法。我对伪代码的尝试
locate labra | xargs scp {} masi@11.11.11:~/Desktop/
如何将文件移动到目的地?
xargs 通常采用命令行中可以容纳的尽可能多的参数,但使用 -I 它突然只需要一个。GNU Parallel 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/
通常,{} 是一种查找方法:
find ... -exec cmd {} \;
其中 {} 是 find 正在处理的当前文件。
您可以让xargs表现得与以下类似:
locate labra | xargs -I{} echo {} more arguments
但是,您会很快注意到它多次运行命令,而不是一次调用scp。
所以在你的例子中:
locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/
请注意 {} 周围的单引号,因为它对于其中包含空格的路径很有用。