Saya mencoba menyalin file yang memiliki titik dua dan titik, misalnya, dengan:
scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/
scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/
dan kombinasi dengan file:
scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/
Dugaan saya adalah scp mencoba menafsirkan bagian file sebagai server dan / atau nomor port. Bagaimana saya menghindarinya?
Jika saya mengganti nama file untuk test.json maka scp test.json remote:tmp/
berfungsi dengan baik, tetapi bahkan tidak scp test*62378 remote:tmp/
berfungsi.
*
), tidak berfungsi. Ini dilakukan di shell, jadi teks (argumen) yang sama akan diteruskan kescp
. Anda perlu mengubah teks (argumen) yang diteruskan kescp
. (lihat jawaban di bawah, untuk apa argumen teks harus diubah.):
adalah karakter nama file ilegal di OSX, jadi jika Anda perlu mentransfer file-file ini ada sesuatu yang perlu diingat.scp -- -1.JvSbrpchxuk.png [email protected]:/tmp
Jawaban:
Gunakan
./
sebelum nama file Anda:Yang membuat
scp
tahu itu file. Tanpa itu,scp
mengira itu nama host karena titik dua.sumber
Gunakan jalan dengan mendahului
./
dan keluar dari jalan Anda:
. Cyberiti memiliki lebih banyak info . Contoh:sumber
:
adalah pada level shell, bukan pada level scp.scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/
benar-benar bekerja! Maaf.Rupanya, saya tidak mencoba versi ini dengan path prefix:
ini juga berfungsi:
Dari https://twitter.com/h0pbeat/status/497319751031353344 dan http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/ Terima kasih.
(karena pengguna di atas berhasil menjawab sebelum saya)
sumber