我想要找出输出的文件列表。 我想scp采取列表。

我不知道有关语法。 我尝试用伪代码

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

您如何可以将文件移动到目标?

有帮助吗?

解决方案

典型地,{}是一个的找到 ISM:

find ... -exec cmd {} \;

其中{}是找到正在工作的当前文件。

您可以得到的 xargs的以表现类似:

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