GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa menyalin banyak file melalui scp dalam satu perintah?

Gunakan tar :

tar cvzf - -T list_of_filenames | ssh hostname tar xzf -

Saya ingin menggunakan scp untuk itu, tetapi scp hanya memungkinkan untuk mentransfer satu file dalam satu waktu.

Saya cukup yakin itu tidak benar, setidaknya tidak untuk scp perintah yang disediakan oleh OpenSSH disertakan dengan sebagian besar distribusi Linux.

Saya menggunakan scp file1 file2 ... fileN [email protected]:/destination/directory/ cukup sering.

Untuk kompresi transparan, protokol SSH memiliki bawaan ini dan scp dapat menggunakannya jika Anda memberikan -C opsi pada baris perintah. Untuk banyak file kecil yang serupa, Anda akan menemukan opsi tar+gz yang disarankan oleh akira mendapatkan kompresi yang lebih baik karena dapat memanfaatkan kesamaan antara file-file tersebut di mana scp kompres setiap file sebagai entitas yang terpisah. Saya biasanya lebih suka menggunakan scp karena lebih mudah untuk melanjutkan transfer sebagian (atau, meskipun saya tahu dalam situasi ini penanya tidak memiliki opsi) rsync karena itu lebih mudah untuk melanjutkan dan berbagi keunggulan kompresi seluruh aliran opsi tar+gz.


Bukan scp -r yourdir otherhost:/otherdir bekerja?

Coba ini kalau begitu:

tar cfz - . | ssh otherhost "cd /mydir; tar xvzf -"

z -flag to tar melakukan kompresi. Atau Anda dapat menggunakan -C untuk ssh:

tar cf - . | ssh -C otherhost "cd /mydir; tar xvf -"

Linux
  1. Bagaimana cara gzip banyak file menjadi satu file gz?

  2. Gabungkan banyak file tar dalam satu perintah

  3. Salin file besar ke beberapa mesin di LAN

  1. Bagaimana cara menggunakan perintah Rsync di linux?

  2. Cara menyalin banyak file secara bersamaan menggunakan scp

  3. Bagaimana saya bisa menggunakan perintah tar untuk mengelompokkan file tanpa kompresi?

  1. Cara Menyalin File ke Banyak Direktori di Linux

  2. Cara Mengganti Nama Banyak File Sekaligus di Linux

  3. Bagaimana saya bisa mengedit banyak file di VIM?