rsync:如何复制完整的目录结构
rsync: how to replicate full directory structure
我想使用 rsync 将一些目录从远程服务器同步到我的本地计算机。为了使文件井井有条,我希望 rsync create/copy 包含所有父目录的整个路径。
我正在使用带有证书文件的 ssh,因此不需要手动登录。
如果我像下面那样使用它,它会复制 file.crt 但不会创建父目录:
rsync -ave ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
如果我尝试使用 -R --recursive 选项,它会失败并出现以下错误:
rsync -ave --recurisive ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
或使用-R
rsync -aveR ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
Unexpected remote arg: user1@10.10.10.10:/opt/dir/data/file.crt
rsync error: syntax or usage error (code 1) at main.c(1361) [sender=3.1.2]
提前感谢您的帮助
我在这里看到两个问题:首先,-R
和 --recurisive
选项 与 不同(并且 "recurisive" 拼写错误) . -R
是 --relative
的缩写形式,这是你想要的(它包括源的完整路径)。有一个 --recursive
选项(缩写形式:-r
),但是 -a
暗示了这一点,并且在这里也无关紧要,因为您复制的是单个文件,而不是目录。
其次,当您添加新选项时,您将其放在 -ave
和 ssh
之间,但是 ssh
是 -e
的参数选项,因此它必须紧跟在 -e
之后。您编写它的方式,rsync
将 -R
或其他任何解释为 -e
的参数,而 ssh
是一个完全独立的参数,因此变得完全混乱。
但无论如何您都不应该需要 -e ssh
-- 这几乎总是默认设置,因此您应该可以将其关闭。因此,试试这个:
rsync -avR user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
如果这不起作用,请试试这个:
rsync -avR -e ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
我想使用 rsync 将一些目录从远程服务器同步到我的本地计算机。为了使文件井井有条,我希望 rsync create/copy 包含所有父目录的整个路径。
我正在使用带有证书文件的 ssh,因此不需要手动登录。
如果我像下面那样使用它,它会复制 file.crt 但不会创建父目录:
rsync -ave ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
如果我尝试使用 -R --recursive 选项,它会失败并出现以下错误:
rsync -ave --recurisive ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
或使用-R
rsync -aveR ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
Unexpected remote arg: user1@10.10.10.10:/opt/dir/data/file.crt
rsync error: syntax or usage error (code 1) at main.c(1361) [sender=3.1.2]
提前感谢您的帮助
我在这里看到两个问题:首先,-R
和 --recurisive
选项 与 不同(并且 "recurisive" 拼写错误) . -R
是 --relative
的缩写形式,这是你想要的(它包括源的完整路径)。有一个 --recursive
选项(缩写形式:-r
),但是 -a
暗示了这一点,并且在这里也无关紧要,因为您复制的是单个文件,而不是目录。
其次,当您添加新选项时,您将其放在 -ave
和 ssh
之间,但是 ssh
是 -e
的参数选项,因此它必须紧跟在 -e
之后。您编写它的方式,rsync
将 -R
或其他任何解释为 -e
的参数,而 ssh
是一个完全独立的参数,因此变得完全混乱。
但无论如何您都不应该需要 -e ssh
-- 这几乎总是默认设置,因此您应该可以将其关闭。因此,试试这个:
rsync -avR user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
如果这不起作用,请试试这个:
rsync -avR -e ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/