为什么在 rsync 目标后面添加尾部斜杠?

为什么在 rsync 目标后面添加尾部斜杠?

根据在网页中,将“/”添加到 rsync 目标的末尾会产生与不添加它不同的结果。

我尝试对此进行测试,但无法验证:

$ mkdir dir{1..3}
$ touch dir1/file
$ rsync -r dir1/ dir2
$ rsync -r dir1/ dir3/
$ ls dir*
dir1:
file

dir2:
file

dir3:
file

有时在目的地附加“/”实际上有用吗?

答案1

当源是文件并且目标目录不存在时,它确实会产生影响。例如,取一个名为file源的文件:

  • $ rsync file dest/file将在目录内创建一个副本dest,而
  • $ rsync file destfile将制作名为的文件的副本dest

添加(来自评论);如果目录dest已存在,则在上述两种情况下file都会创建一个副本。dest

基本示例:

~/test > touch file
~/test > mkdir dest1
mkdir: created directory 'dest1'
~/test > tree
.
├── dest1
└── file

1 directory, 1 file
~/test > rsync file dest1
~/test > rsync file dest2
~/test > rsync file dest3/
~/test > tree
.
├── dest1
│   └── file
├── dest2
├── dest3
│   └── file
└── file

2 directories, 4 files
~/test >

相关内容