Jawaban:
File biasa adalah file yang bukan direktori atau jenis file "khusus" yang lebih eksotis seperti pipa bernama, perangkat, soket, pintu, dll. Tautan simbolik bukan file biasa juga, tetapi mereka berperilaku seperti target mereka ketika itu aplikasi sedang mengakses konten file.
Anda lulus root@IP:
sebagai sumber salinan dan /path/to/picture.jpg
sebagai tujuan. Sumbernya adalah direktori home pengguna root
pada mesin IP
. Ini berguna sebagai tujuan, tetapi bukan sebagai sumber. Apa yang Anda ketikkan harus menyalin direktori ke file; scp
tidak dapat menyalin direktori kecuali jika Anda meminta salinan rekursif dengan -r
opsi (dan itu akan menolak untuk menimpa file yang ada dengan direktori bahkan dengan -r
, tetapi itu diam-diam akan menimpa file biasa jika sumbernya adalah file biasa).
Jika /path/to/picture.jpg
path pada mesin remote dari file yang ingin Anda salin, Anda harus menempelkan nama file ke spesifikasi host. Itu titik dua :
yang memisahkan nama host dari jalur jauh. Anda juga harus menentukan tujuan.
scp root@IP:/path/to/picture.jpg /some/destination
Jika Anda ingin menyalin file lokal /path/to/picture.jpg
ke host jarak jauh, Anda perlu menukar argumen. Perintah salin Unix menempatkan sumber (s) pertama dan tujuan terakhir.
scp /path/to/picture.jpg root@IP:
Jika Anda ingin menyalin file jarak jauh /path/to/picture.jpg
ke lokasi yang sama secara lokal, Anda perlu mengulangi path. Anda dapat meminta shell Anda melakukan pengulangan untuk Anda (kurang mengetik, kurang mudah dibaca).
scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
Saat menyalin direktori, Anda harus menggunakan -r
opsi:
scp -r root@IP:/path/to/file /path/to/filedestination
masalah sintaksis - menghapus spasi putih di antara
root @ IP:
dan
/ jalan
scp
lagi.
not a regular file
-r
sebagai argumen scp.
scp root@IP:/path/to/file /path/to/filedestination
Perintah di atas menyalin file dari server jauh ke komputer Anda. Jika Anda mengetik saja, scp root@IP:
ia akan mencoba menyalin direktori home root (pengguna scp home .
).
Jadi, Anda perlu memberikan jalur yang tepat ke file
Anda mendapatkan kesalahan itu karena Anda mencoba untuk menyalin folder dan bukan file dan karenanya Anda harus menyalin file Anda secara rekursif dengan menggunakan -r
opsi
Gunakan perintah di bawah ini saat menyalin file dari mesin jarak jauh ke mesin lokal
scp -r root@RemoteIP:/path/to/file /path/to/filedestination
ATAU
Saat menyalin file dari mesin lokal ke mesin jarak jauh
scp -r /path/to/file root@RemoteIP:/path/to/filedestination
scp root@IP:/path/to/*.jpg /path/to/filedestination/
Ini akan berfungsi (setidaknya di Mac saya)