Menyalin file dengan ekstensi tertentu dengan scp

19

Saya ingin menyalin .jpgdan .pngfile dengan scp, tetapi ada file dengan ekstensi berbeda di folder yang sama saya salin. Saya melakukan hal berikut:

scp [email protected]:/folder/*.{jpg,png} .

Saya diminta memasukkan kata sandi untuk setiap jenis ekstensi. Apakah ada cara untuk melakukan ini sehingga saya hanya memasukkan kata sandi sekali saja?

sodiumnitrate
sumber

Jawaban:

31

Ganti saja dengan:

scp [email protected]:'/folder/*.{jpg,png}' .

Harap perhatikan sepasang kutipan tunggal. Dalam kasus Anda, shell lokal Anda sedang mengevaluasi ekspresi, mengubahnya menjadi:

scp [email protected]:/folder/*.jpg [email protected]:/folder/*.png .

maka dari itu kedua kata sandi itu diminta. Dalam solusi ini, sepasang tanda kutip tunggal melindunginya dari evaluasi oleh shell lokal, jadi itu adalah shell remote yang disebut oleh (remote) scp yang mengevaluasi ekspresi.

AB
sumber
Bagaimana saya bisa memasukkan semua subdirektori dari direktori itu?
xxx ---
@ pushpen.paul Jika Anda tidak perlu memilih hanya file png dan jpg tetapi ingin menyalin semuanya, maka menggunakan misalnya scp -r [email protected]:'/folder' . harus melakukannya. Lain jika Anda hanya ingin menyalin png dan jpg di subdirektori tersebut, Anda mungkin tidak dapat menggunakan scp atau sftp (kecuali sftp / lftp dengan skrip kustom yang mungkin) tetapi perlu menjalankan sesuatu seperti ssh + sepasang tar sebagai gantinya. Anda harus mengajukan pertanyaan Anda sendiri dengan kebutuhan spesifik saat itu.
AB
7

Lebih baik menggunakan rsync untuk menyalin operasi antar server.

 rsync -avzh user@remoteip:/path/*.jpg [email protected]:/path/*.png localserverpath

Menggunakan rsync hanya akan meminta kata sandi sekali saja.

Juga di rsync saat mentransfer file, ia akan memeriksa di lokasi target apakah file tersebut ada atau tidak dan juga memeriksa apakah kontennya sama atau tidak di lokasi sumber dan lokasi target.

Jika file juga ada di lokasi target dan isinya juga sama, maka itu tidak akan menyalin file itu. Ini hanya akan menyalin file yang tidak ada di lokasi target, sehingga mengurangi waktu pemrosesan.

rsync sering digunakan sebagai alat cadangan tambahan.

Praveen Kumar BS
sumber
8
Tidak masalah apakah digunakan rsyncatau scp, intinya adalah yang /folder/*.{jpg,png}harus mengutip '/folder/*.{jpg,png}' .
αғsнιη