GNU/Linux >> Belajar Linux >  >> Linux

Bisakah scp menyalin direktori secara rekursif?

Solusi 1:

Yup, gunakan -r :

scp -rp sourcedirectory [email protected]:/path
  • -r berarti rekursif
  • -p mempertahankan waktu modifikasi, waktu akses, dan mode dari file asli.

Catatan:Ini membuat sourcedirectory di dalam /path dengan demikian file akan berada di /path/sourcedirectory

Solusi 2:

Meskipun jawaban sebelumnya secara teknis benar, Anda juga harus mempertimbangkan untuk menggunakan rsync alih-alih. rsync membandingkan data di sisi pengirim dan penerima dengan mekanisme diff sehingga tidak perlu mengirim ulang data yang sudah dikirim sebelumnya.

Jika Anda akan menyalin sesuatu ke mesin jarak jauh lebih dari sekali, gunakan rsync . Sebenarnya, bagus untuk menggunakan rsync setiap kali karena memiliki lebih banyak kontrol untuk hal-hal seperti menyalin izin dan kepemilikan file dan mengecualikan file atau direktori tertentu. Secara umum:

$ rsync -av /local/dir/ server:/remote/dir/

akan menyinkronkan direktori lokal dengan direktori jarak jauh. Jika Anda menjalankannya untuk kedua kalinya dan konten direktori lokal tidak berubah, tidak ada data yang akan ditransfer - jauh lebih efisien daripada menjalankan scp dan menyalin semuanya setiap saat.

Juga, rsync memungkinkan Anda memulihkan dari transfer yang terputus dengan sangat mudah, tidak seperti scp .

Terakhir, versi modern dari rsync secara default menjalankan ssh, jadi jika scp sudah berfungsi, rsync harus cukup banyak menjadi pengganti drop-in.

Solusi 3:

Itulah -r pilihan adalah untuk. :)

Lihat halaman manual scp untuk info lebih lanjut jika diperlukan.

Solusi 4:

Opsi Salin Rekursif '-r' (huruf kecil)

scp -r

Yang saya bingungkan dengan opsi penyalinan rekursif lokal biasa '-R' (huruf besar)

cp -R

Solusi 5:

Cara terbaik adalah menggunakan rsync melalui SSH

rsync -a -essh /source/ [email protected]:/dest/

rsync -a -essh [email protected]:/source/ /dest/

Opsi favorit saya adalah -Pazvessh --delete :

  • -a :mode arsip (menyertakan banyak opsi umum default, termasuk mempertahankan symlink)
  • -z :kompres
  • -v :verbose :tampilkan file
  • -P :tampilkan progess saat file selesai/sisa file
  • -e ssh :lakukan rsync di protokol ssh
  • --delete :hapus file di tujuan yang tidak lagi ada di sumber

Linux
  1. Cara menyalin direktori secara rekursif menggunakan rsync sambil mengecualikan file tertentu

  2. Mengapa file tidak dapat dimanipulasi oleh inode?

  3. Bagaimana saya bisa mengecualikan direktori dari grep -R?

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

  2. Bagaimana saya bisa menyalin semua file pdf secara rekursif dalam direktori (dan itu subdirektori) ke dalam satu direktori keluaran?

  3. bagaimana saya bisa menghapus direktori kosong secara rekursif di direktori home saya?

  1. Menyinkronkan Direktori Di Kedua Arah Dengan Rsync?

  2. Bagaimana cara mendaftar direktori secara rekursif di C di Linux?

  3. bandingkan 2 direktori dan salin perbedaan di direktori ke-3