Khi sử dụng SSH để kết nối rsync với máy chủ từ xa, làm thế nào để bạn thoát khỏi không gian và như vậy trong đường dẫn từ xa? Dấu gạch chéo ngược đơn giản thoát khỏi không gian cho dấu nhắc bash cục bộ, nhưng trên máy từ xa, không gian đó sau đó được đọc là dấu ngắt trong đường dẫn, do đó đánh dấu sự kết thúc của đường dẫn đó.
Vì vậy, khi tôi làm rsync -avz /path/to/source/some\ dir/ user@host.tld:/path/to/dest/some\ dir/
những gì xảy ra là máy chủ từ xa đang đọc như vậy /path/to/dest/some/
và vì nó không thể tìm thấy đích đó từ xa, bởi vì đích đến thực sự là "một số thư mục" chứ không chỉ là "một số".
Nếu tôi thử cùng một lệnh và thoát dấu gạch chéo ngược và khoảng trống để vượt qua dấu nhắc bash cục bộ và duy trì dấu gạch chéo ngược cho máy chủ từ xa (tổng cộng ba dấu gạch chéo ngược /path/to/dest/some\\\ dir/
:), thì nó thực sự gửi dấu gạch chéo ngược đến máy chủ từ xa, nhưng máy chủ từ xa sau đó diễn giải đường dẫn /path/to/dest/some\/
thay vì /path/to/dest/some\ dir/
vẫn tước không gian và các ký tự sau nó.
Nếu tôi cố gắng bọc đường dẫn bằng dấu ngoặc kép, nó hành xử khá giống với cách đó, có hiệu quả cắt đường đi ở không gian. Vì vậy, nó cũng chỉ hoạt động để vượt qua dấu nhắc bash cục bộ.
Ban đầu, tôi đang sử dụng một đường dẫn có phân đoạn "-" (dấu cách-dấu cách-không gian) trong đó và máy chủ từ xa đang trả về một lỗi rsync: on remote machine: -: unknown option
bắt đầu từ nỗ lực thoát khỏi không gian này ngay từ đầu.
Vậy tôi phải làm gì để nó hoạt động tốt với máy chủ từ xa, mà không phải xóa khoảng trắng hoặc các ký tự sai khác như dấu gạch nối khỏi đường dẫn từ xa?
-s
vấn đề giải quyết vấn đề mà không cần phải áp dụng thoát kép bằng tay.