【问题标题】:How to use scp with xargs?如何将 scp 与 xargs 一起使用?
【发布时间】:2016-12-27 12:05:28
【问题描述】:

我正在尝试将非常大的文件从一台主机移动到另一台主机。文件名也太大了,所以我必须使用xargs。还需要复制所有子目录

我在源主机当前目录中使用下面的命令

find . -name "*" -type f -print0 | xargs -0 scp -r UserName@host:/path/to/destination

但它抛出错误

scp: /path/to/destination: not a regular file

【问题讨论】:

    标签: linux unix command scp xargs


    【解决方案1】:

    您需要使用 {} 将 src 文件名放在目标之前。这是新命令:

    find . -name "*" -type f -print0 | xargs -0 -I {} scp -r {} UserName@host:/path/to/destination
    

    【讨论】:

    • 差不多了,但我需要的一件事是子目录也应该被复制。但现在只有子目录的内容被移动了。其次,该命令每次复制一个文件时都要求输入密码。有什么解决办法吗?
    • 如果要复制目录,请从 find 命令中删除 -f 参数。如果您不想一直输入密码,请将您的公共 ssh id 添加到远程机器并使用 ssh-agent 将您的密钥存储在您运行的机器上。命令来自。
    • 所以我删除了-f 并且子目录的文件被复制了两次。一次是/path/to/destination,又是/path/to/destination/source_folder/。我希望你能理解我的问题。
    • 嗯,这似乎是一个完全不同的问题。您应该发布另一个问题,用示例详细说明您的问题,有人会回答它
    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2014-02-11
    • 2010-12-08
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多