rsync命令中的路徑反斜槓

       rsync 是一個常常被用來同步數據的命令,可是在使用過程當中一個小細節比較容易被忽略,那就是路徑結尾的 「/」 ,在路徑的結尾有沒有反斜槓,命令結果是大不相同的。如今做個簡單試驗來講明:ide

      新建兩個目錄,一個名爲sourceDir,另外一個名爲destinationDir,並分別在目錄中創建兩個不一樣的文件:spa

[root@localhost ~]# mkdir sourceDir
[root@localhost ~]# mkdir destinationDir
[root@localhost sourceDir]# touch a1 a2
[root@localhost destinationDir]# touch b1 b2
ci

[root@localhost ~]# ls -l sourceDir/
total 0
-rw-r--r--  1 root root 0 Sep 18 12:39 a1
-rw-r--r--  1 root root 0 Sep 18 12:39 a2
同步

[root@localhost ~]# ls -l destinationDir/
total 0
-rw-r--r--  1 root root 0 Sep 18 12:40 b1
-rw-r--r--  1 root root 0 Sep 18 12:40 b2
it

下面分別演示目錄尾部是否帶反斜槓的做用:io

 [root@localhost ~]# rsync -a sourceDir destinationDir/

源目錄未帶尾部路徑反斜槓,rsync 會把 sourceDir 整個目錄複製到 destinationDir 中,結果以下:table

[root@localhost ~]# ls -l sourceDir/
total 0
-rw-r--r--  1 root root 0 Sep 18 12:39 a1
-rw-r--r--  1 root root 0 Sep 18 12:39 a2
[root@localhost ~]# ls -l destinationDir/
total 4
-rw-r--r--  1 root root    0 Sep 18 12:40 b1
-rw-r--r--  1 root root    0 Sep 18 12:40 b2
drwxr-xr-x  2 root root 4096 Sep 18 12:39 sourceDir 

源目錄帶尾部路徑反斜槓,rsync 會把 sourceDir 目錄內的內容所有複製到 destinationDir 中,結果以下:class

[root@localhost ~]# rsync -a sourceDir/ destinationDir/
[root@localhost ~]# ls -l sourceDir/
total 0
-rw-r--r--  1 root root 0 Sep 18 12:39 a1
-rw-r--r--  1 root root 0 Sep 18 12:39 a2
[root@localhost ~]# ls -l destinationDir/
total 0
-rw-r--r--  1 root root 0 Sep 18 12:39 a1
-rw-r--r--  1 root root 0 Sep 18 12:39 a2
-rw-r--r--  1 root root 0 Sep 18 12:40 b1
-rw-r--r--  1 root root 0 Sep 18 12:40 b2 

看到了目錄尾部是否帶路徑反斜槓的區別了嗎?rsync

簡單總結一下:源目錄尾部的路徑反斜槓是告訴 rsync 複製這個目錄裏的全部內容到目標目錄 ,若是不加目錄尾部路徑反斜槓,那麼這個目錄自己會被複制到目標目錄中。gc

咱們通常都是想要把源目錄的內容同步到目標目錄中,因此若是你實在記不清這個區別,那麼在源目錄的最後加上 「/*」 是最保險的方法。

相關文章
相關標籤/搜索