Boşluklu SSH yolu üzerinden Rsync tırnak işaretleri ile çalışmaz


17

Yollarda boşluk olmadığı sürece SSH üzerinden başarılı bir şekilde RSYNC yapabiliyorum.

Yolda boşluklar varsa, çalışmaz. Eğik çizgi, tırnak işareti ve çift tırnak işareti denedim.

Eğik çizgiler kullandığımda, çıktı bunun başarılı olduğunu söylüyor ancak aktarılan dosya görmüyorum.

rsync -avz /path\ with\ spaces/ user@remotelocation:/media/another\ path\ with/spaces/

Tek veya çift tırnak kullandığımda şifremi girdikten sonra izninin reddedildiğini söylüyor

rsync -avz '/path with spaces/' 'user@remotelocation:/media/another path with/spaces/'

Ne yapabilirim?

Teşekkür ederim.

Yanıtlar:


12

Örnek kod ve referanslarla rzr cevabını genişleterek, -sbayrağı ekleyin , yolları alıntılayın ve uzak yoldaki boşluklardan kaçmak için endişelenmeyin:

rsync -avzs '/path with spaces/' 'user@remotelocation:/media/another path with/spaces/'

Referans olarak, OP tarafından belirtilen seçenekler:

  • -a, arşiv modu, -rlptgoD'ye eşit (-H, -A, -X yok)
    • İçerir:
    • -r, - yinelenen, dizinlere geri alma
    • -l, --linkler, linkleri sembolik olarak kopyala
    • -p, --perms, izinleri koru
    • -t, --times, değişiklik sürelerini koru
    • -g, --group, koruma grubu
    • -o, - sahibi, sahibini koru (yalnızca süper kullanıcı)
    • -devices, aygıt dosyalarını koru (yalnızca süper kullanıcı)
    • -özel, özel dosyaları korumak
  • -v, --verbose, ayrıntı düzeyini artır
  • -z, --compress, aktarım sırasında dosya verilerini sıkıştır

Ek parametre gerekli:

  • -s, --protect-args, boşluk bölme yok, yalnızca joker karakterler

13

Hem yerel kabuktaki hem de uzak kabuktaki boşluklardan kaçmanız gerekir. Bunu dene:

rsync -avz '/path with spaces/' 'user@remotelocation:/media/another\ path\ with/spaces/'

/path with spaces/Yerel kabuktaki kaynak sadece etrafına tek tırnak işareti koyarak kaçabilir '/path with spaces/'.

Diğer taraftan, hedef durumunda, yerel kabuk tek tırnak işaretleri kullanılarak kaçar \ve boşluklar, boşlukların önünde kaçış karakteri ( ) kullanılarak uzak kabukta kaçar .


3
Sadece vurgulamak için - İKİ tırnak ve ters eğik çizgi gerekir.
Sridhar Sarnobat

2

rsync seçeneğine bakın –protect-args (-s), fazladan eğik çizgi gerekmez


1
Acemi kullanıcının izleyebileceği bir örnek sunarsanız cevabınız çok daha iyi olur. Teşekkür ederim!
Elder Geek
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.