scp -r ... 但省略(排除)指定的子目录

rus*_*spy 31 scp

这是目录结构:

/a/
/a/b/
/a/c/
Run Code Online (Sandbox Code Playgroud)

我想复制所有内容,除了 /a/c/ 子目录。

scp -rp myserver:/a .      # this will copy everything
Run Code Online (Sandbox Code Playgroud)

问:如何在 scp 命令中指定要省略的目录?

Pau*_*xon 32

我不认为你可以,但你可以使用 rsync?像这样的东西:

rsync -a --exclude=a/c myserver:/a .
Run Code Online (Sandbox Code Playgroud)


小智 5

我认为这可能是正确的做法,所以您仍在使用 SSH,我还没有找到使用 scp 的方法 - 但使用 rsync over ssh 可能会解决它。

rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .
Run Code Online (Sandbox Code Playgroud)

如果您使用 -n 开关,那么它将创建该过程的试运行:

 rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .
Run Code Online (Sandbox Code Playgroud)