【发布时间】:2017-11-11 17:32:52
【问题描述】:
当使用scp 或rsync 时,我经常无法处理“参数列表太长”错误。当不得不mv 或rm 时,我使用find 和xargs 没有问题,但我不明白如何使用find 和-exec,尽管所有SE 帖子都关于该主题。考虑以下问题...
我试过了
$scp /Path/to/B* Me@137.92.4.152:/Path/to/
-bash: /usr/bin/scp: Argument list too long
所以我尝试了
$find . -name "/Path/to/B*" -exec scp "{}" Me@137.92.4.152:/Path/to/ '\;'
find: -exec: no terminating ";" or "+"
所以我尝试了
$find . -name "/Path/to/B*" -exec scp "{}" Me@137.92.4.152:/Path/to/ ';'
find: ./.gnupg: Permission denied
find: ./.subversion/auth: Permission denied
所以我尝试了
$sudo find . -name "/Path/to/B*" -exec scp "{}" Me@137.92.4.152:/Path/to/ ';'
输入密码后什么也没有发生
我使用的是 Mac OSX 版本 10.11.3,终端版本 2.6.1
【问题讨论】:
-
你为什么不直接复制目录,而不是里面的所有文件? “scp - r” 可以完成这项工作
-
抱歉,我的示例很糟糕,因为我选择了所有文件。我更改了示例以明确表示我不想复制所有文件。我现在通常做的是我
mkdir,find ... |xargs mv ..文件,然后scp -r目录,mv文件返回和rm -r相当愚蠢的目录。
标签: bash macos rsync scp find-util