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.