Menurut halaman web ini , menambahkan '/' ke akhir tujuan rsync menghasilkan hasil yang berbeda dari tidak menambahkannya.
Saya sudah mencoba menguji ini, tetapi saya tidak dapat memverifikasinya:
$ mkdir dir{1..3}
$ touch dir1/file
$ rsync -r dir1/ dir2
$ rsync -r dir1/ dir3/
$ ls dir*
dir1:
file
dir2:
file
dir3:
file
Apakah menambahkan tanda '/' ke tujuan terkadang memiliki kegunaan?
A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination.
? Jika demikian, harap perhatikan bahwa perintah Anda sama sekali tidak mirip dengan yang ada dalam contoh yang diberikan di halaman manual.rsync -r dir1/subdir1 dir2/
akan menyalin isisubdir1
ke dalamdir2
tetapi jika Anda melakukannyarsync -r dir1/subdir1/ dir2/
akan menyalin seluruh direktori (termasuk konten)subdir1
ke dalamdir2
sehingga Anda akan memiliki./dir2/subdir1/
Jawaban:
Itu membuat perbedaan ketika sumbernya adalah file dan direktori tujuan tidak ada. Sebagai contoh, ambil file yang disebut
file
sebagai sumber:$ rsync file dest/
akan membuat salinanfile
di dalam direktoridest
, sedangkan$ rsync file dest
akan membuat salinan dari file yangfile
dipanggildest
Untuk menambah (dari komentar); jika direktori
dest
sudah ada, salinanfile
akan dibuatdest
dalam kedua kasus di atas.Contoh dasar:
sumber
dest
sudah ada, tidak perlu untuk trailing slash?dest
ada direktori , salinanfile
akan dibuat di dalam dalam kedua kasus.