GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengecualikan File dan Direktori dengan Rsync

Rsync adalah utilitas baris perintah yang cepat dan serbaguna yang menyinkronkan file dan folder antara dua lokasi melalui shell jarak jauh.

Dengan Rsync Anda dapat mencerminkan data, membuat cadangan tambahan, dan menyalin file antar sistem. Saat menyalin data, Anda mungkin ingin mengecualikan satu atau beberapa file atau direktori berdasarkan nama atau lokasinya.

Dalam tutorial ini, kami akan menunjukkan cara mengecualikan file dan direktori dengan rsync.

Sebelum Anda Mulai #

Anda harus memiliki pengetahuan dasar tentang cara kerja rsync.

Pada contoh di bawah ini, kita akan menggunakan rsync dengan -a , pilihan. Ini memberitahu rsync untuk menyinkronkan direktori secara rekursif, mentransfer perangkat khusus dan memblokir serta mempertahankan tautan simbolis, waktu modifikasi, grup, kepemilikan, dan izin.

Saat mengecualikan file atau direktori, Anda perlu menggunakan jalur relatifnya ke direktori sumber.

Ada dua opsi untuk menentukan file dan direktori yang ingin Anda kecualikan:

  • Dari baris perintah , menggunakan --exclude pilihan.
  • Dari file , menggunakan --exclude-from pilihan.

Kecualikan File Tertentu #

Untuk mengecualikan file tertentu, teruskan jalur relatif ke file ke --exclude pilihan.

Pada contoh berikut file src_directory/file.txt tidak akan ditransfer:

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

Kecualikan Direktori Tertentu #

Mengecualikan direktori tertentu sama dengan mengecualikan file, cukup berikan jalur relatif ke direktori ke --exclude pilihan seperti yang ditunjukkan di bawah ini:

rsync -a --exclude 'dir1' src_directory/ dst_directory/

Jika Anda ingin mengecualikan konten direktori tetapi bukan direktori itu sendiri, gunakan dir1/* bukannya dir1 :

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

Kecualikan Beberapa File atau Direktori #

Untuk mengecualikan beberapa file atau direktori cukup tentukan beberapa --exclude pilihan:

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

Jika Anda lebih suka menggunakan satu --exclude opsi Anda bisa membuat daftar file dan direktori yang ingin Anda kecualikan dalam kurung kurawal {} dipisahkan dengan koma seperti yang ditunjukkan di bawah ini:

rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

Jika jumlah file dan/atau direktori yang ingin Anda kecualikan besar, daripada menggunakan beberapa --exclude opsi Anda dapat menentukan file dan direktori yang ingin Anda kecualikan dalam file dan meneruskan file ke --exclude-from pilihan.

Perintah di bawah ini persis sama dengan perintah di atas:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
kecualikan-file.txt
file1.txt
dir1/*
dir2

Kecualikan Beberapa File atau Direktori Berdasarkan Pola #

Dengan rsync Anda juga dapat mengecualikan file dan direktori berdasarkan pola yang cocok dengan nama file atau direktori.

Misalnya, untuk mengecualikan semua .jpg file yang akan Anda jalankan:

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

Sedikit lebih sulit untuk mengecualikan semua file dan direktori lain kecuali yang cocok dengan pola tertentu. Katakanlah Anda ingin mengecualikan semua file dan direktori lain kecuali file yang diakhiri dengan .jpg .

Salah satu opsi adalah menggunakan perintah berikut:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

Saat menggunakan beberapa opsi sertakan/kecualikan, aturan pencocokan pertama yang berlaku.

  • --include='*.jpg' - Pertama kami menyertakan semua .jpg file.
  • --include='*/' - Kemudian kami memasukkan semua direktori di dalam src_directory direktori. Tanpa rsync ini hanya akan menyalin *.jpg file di direktori tingkat atas.
  • -m - Menghapus direktori kosong.

Pilihan lain adalah menyalurkan output dari find perintah untuk rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
  • -printf %P\\0\\n - akan menghapus src_directory/ dari jalur file.
  • --files-from=- - berarti hanya menyertakan file dari input standar (file yang diteruskan dari perintah find).

Kesimpulan #

Dalam tutorial ini, Anda mempelajari cara mengecualikan file dan direktori saat mentransfer data dengan Rsync. Masih banyak lagi yang bisa dipelajari tentang Rsync di Rsync User's Manualpage.


Linux
  1. Cara Mentransfer File di Linux dengan SCP dan Rsync

  2. Cara Menyalin / Memindahkan File dan Direktori di Linux dengan perintah "cp" dan "mv"

  3. Bagaimana saya bisa mengecualikan file secara default dengan rsync?

  1. Cara Zip File dan Direktori di Linux (dengan Contoh)

  2. Cara Mengecualikan Direktori Tertentu Dari Menyalin Di Linux

  3. Cara Mengarsipkan File Dan Direktori Di Linux [Bagian 2]

  1. Cara Menyalin File dan Direktori di Linux

  2. Salin file dengan SCP dan Rsync

  3. 6 Contoh rsync untuk Mengecualikan Banyak File dan Direktori menggunakan pengecualian-dari