SSH'yi rsync'i uzak bir sunucuya bağlamak için kullanırken, uzak yoldaki boşluklardan nasıl kaçarsınız? Basit bir ters eğik çizgi, yerel bash istemi için alandan kaçar, ancak uzak makinede alan daha sonra yolda bir mola olarak okunur, böylece bu yolun sonunu işaretler.
Böylece rsync -avz /path/to/source/some\ dir/ user@host.tld:/path/to/dest/some\ dir/
ne olur ne zaman uzak sunucu bu gibi okuma /path/to/dest/some/
ve o hedefi uzaktan bulamıyor beri, çünkü gerçek hedef sadece "bazı" yerine "bazı dir".
Aynı komutu dener ve yerel bash istemini geçmek ve uzak sunucu için ters eğik çizgiyi (toplam üç ters eğik çizgi:) korumak için ters eğik çizgi ve boşluktan kaçarsam /path/to/dest/some\\\ dir/
, gerçekten ters eğik çizgiyi uzak sunucuya gönderir, ancak uzak sunucu daha sonra yolu , boşluk ve ardındaki karakterleri sıyırmak /path/to/dest/some\/
yerine yorumlamaktadır /path/to/dest/some\ dir/
.
Yolu tırnak işareti ile sarmaya çalışırsam, hemen hemen aynı şekilde davranır ve yolu etkili bir şekilde alandan keser. Yani sadece yerel bash istemini geçmek için çalışır.
Başlangıçta içinde bir "-" (boşluk-tire-boşluk) segmenti olan bir yol kullanıyordum ve uzak sunucu, rsync: on remote machine: -: unknown option
ilk etapta tüm bu alandan kaçan çabayı başlatan bir hata döndürüyordu .
Öyleyse, uzak yoldan boşlukları veya kısa çizgiler gibi diğer hatalı karakterleri kaldırmak zorunda kalmadan, uzak sunucu ile düzgün çalışmasını sağlamak için ne yapmalıyım?
-s
Gerek kalmadan adresleri sorunu elle çift kaçan uygulamak.