Saya punya skrip yang scp adalah file dari host jarak jauh kembali ke lokal. Terkadang nama file mengandung spasi. scp tidak menyukai spasi dalam nama filenya. Untuk beberapa alasan, upaya saya dalam menangani spasi tidak menghasilkan jalur scp yang benar.
Kode:
PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg
scp $PATH [email protected]:/Users/Me/Desktop
Hasil dalam
Cannot find directory: var/root/Documents/MyFile
Cannot find directory: OG-v1.2.3.pkg
Melampirkan PATH dalam tanda kutip "$PATH"
memberikan kesalahan yang sama.
Menukar ruang untuk ruang yang lolos juga tidak berfungsi, meskipun sejauh yang saya tahu seharusnya:
ESC_PATH=${PATH/' '/' '}
meskipun mencetak jalur lolos menunjukkan bahwa pengeditan berhasil:
echo $ESC_PATH
> /var/root/Documents/MyFile OG-v1.2.3.pkg
Jawaban yang Diterima:
Anda harus mengutip pernyataan dan penggunaannya
path="/var/root/Documents/MyFile OG-v1.2.3.pkg"
scp "$path" [email protected]:/Users/Me/Desktop
Jika Anda tidak mengutip yang pertama, $path
akan berisi hanya bagian pertama. Jika Anda tidak mengutip yang kedua, scp
akan memperlakukan setiap bagian yang dipisahkan oleh spasi sebagai argumen.
(Saya telah mengubah $PATH
ke $path
karena $PATH
adalah variabel cadangan yang penting dan Anda tidak boleh menggunakannya untuk tujuan umum.)