Rsync 使用名称复制当前目录

B.A*_*A.B 9 linux backup rsync cp

我想将当前目录复制到我的备份目录:

我试过这个命令,rsync -a . ~/backup/但它只是复制当前目录的内容,而不是在目的地创建新目录。

我知道在目标端创建新目录可以通过避免源路径中的尾部斜杠来实现。但它在我的情况下不起作用,因为我使用的是句点(“。”)而不是目录名称。

我希望 rsync 在目标路径上创建一个与当前目录同名的新目录。我怎样才能做到这一点?

Has*_*tur 5

我喜欢你的脚本,但如果需要,你可以直接从当前目录通过命令行来完成:

rsync -a "$PWD" ~/backup/
Run Code Online (Sandbox Code Playgroud)

或以类似于您的脚本方法的方式

rsync -a "$(pwd -P)" ~/backup/
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 如果路径中存在,则需要引用当前目录,例如,一个或多个空格。

  • 如果路径中存在符号链接,则可以获得物理路径,避免在命令调用中指定选项的所有符号链接( ),或使用完整路径 ( )调用可执行文件。 确实存在默认显示符号链接路径的内置程序,以及默认显示物理路径的可执行文件。 -Ppwd$(pwd -P)$(/bin/pwd)
    pwd/bin/pwd

  • 这两个命令在被要求提供带有最终符号链接的路径版本时都引用$PWD包含当前工作目录的变量:因此,如果您不严格需要物理路径,则可以避免调用子shell并直接使用变量。 $PWD

    rsync -a "$PWD" ~/backup/
    
    Run Code Online (Sandbox Code Playgroud)