Neden bir rsync hedefinden sonra eğik çizgi ekleyelim?


13

Göre bu bir rsync hedef sonuna '/' ekleyerek, web sayfası eklemeden değil farklı bir sonuç üretir.

Bunu test etmeye çalıştım, ancak doğrulayamıyorum:

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

dir2:
file

dir3:
file

Hedefe '/' eklemenin bazen bir faydası var mı?


Man sayfasının bu bölümüne mi atıfta bulunuyorsunuz A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination.? Öyleyse, komutunuzun man sayfasında verilen örnekteki komutla nasıl benzer olmadığını lütfen unutmayın.
— jesse_b

@Jesse_b Yorumunuz beni şaşırtıyor ... "Hedefin sonunda" / "kullanılırken, rsync verileri son klasörün içine yapıştırır. Hedefin sonunda" / "kullanılmadığında, rsync ile bir klasör oluşturur son hedef klasör adını girin ve verileri bu klasörün içine yapıştırın. "
— Hauke ​​Laging

@HaukeLaging Kafam karıştı, şaşırtıcı olan ne? Bu özel bölüm aynı zamanda kaynağın üzerindeki eğik çizgiyi de belirtir. Eğer eğer Yani rsync -r dir1/subdir1 dir2/o içeriğini kopyalar subdir1içine dir2ama verirseniz rsync -r dir1/subdir1/ dir2/o (içerikleri dahil) bütün dizin kopyalar subdir1içine dir2var diye./dir2/subdir1/
— jesse_b

@Jesse_b İlk yorumunuzda "adam" ı fark etmedim. Açıkçası OP, man sayfasına değil, bağladığı sayfaya atıfta bulunuyor.
— Hauke ​​Laging

Oh Seh, görmedim bile. Sanırım çok hızlı gözden kaçıyordum ve "Adam sayfasına göre" olarak okudum.
— jesse_b

Yanıtlar:


28

Kaynak bir dosya olduğunda ve hedef dizin mevcut olmadığında fark yaratır. Örneğin filekaynak olarak adlandırılan bir dosyayı alın :

  • $ rsync file dest/bir kopyasını yaratacak filebir dizinin içine destoysa
  • $ rsync file destfileadlı dosyanın bir kopyasını oluştururdest

Eklemek için (yorumlardan); bir dizin destzaten varsa, her iki durumda fileda bir kopya oluşturulur dest.

Temel örnek:

~/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 >

1
Teşekkür ederim. Dizin destzaten varsa, eğik çizgiye gerek yoktur?
— EmmaV

Kesinlikle. Yukarıdaki örnekte bir dizin destvarsa, fileher iki durumda da içinde bir kopyası oluşturulur.
— Resc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.