Android

Bagaimana untuk mengecualikan fail dan direktori dengan rsync

rsync is a Based File Sync Program (& if you don't use it, you're wrong.)

rsync is a Based File Sync Program (& if you don't use it, you're wrong.)

Isi kandungan:

Anonim

Rsync adalah utiliti baris perintah yang cepat dan serba boleh yang menyegerakkan fail dan folder antara dua lokasi melalui shell jauh.

Dengan Rsync anda boleh mencerminkan data, membuat sandaran semula dan menyalin fail antara sistem. Apabila menyalin data, anda mungkin mahu mengecualikan satu atau lebih fail atau direktori berdasarkan nama atau lokasi mereka.

Dalam tutorial ini, kami akan menunjukkan kepada anda bagaimana untuk mengecualikan fail dan direktori dengan rsync.

Sebelum awak bermula

Anda harus mempunyai pengetahuan asas bagaimana rsync berfungsi.

Dalam contoh di bawah, kami akan menggunakan rsync dengan pilihan -a Ini memberitahu rsync untuk menyegerakkan direktori secara rekursif, memindahkan peranti khas dan blok dan mengekalkan pautan simbol, masa pengubahsuaian, kumpulan, pemilikan, dan kebenaran.

Apabila tidak termasuk fail atau direktori, anda perlu menggunakan laluan relatif mereka ke direktori sumber.

Terdapat dua pilihan untuk menentukan fail dan direktori yang ingin anda kecualikan:

  • Dari baris arahan, gunakan --exclude fail, gunakan pilihan --exclude-from .

Kecualikan Fail Khusus

Untuk mengecualikan fail tertentu, lulus laluan relatif ke fail ke pilihan --exclude .

Dalam contoh berikut fail src_directory/file.txt tidak akan dipindahkan:

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

Kecualikan Direktori Spesifik

Mengecualikan direktori tertentu adalah sama dengan tidak termasuk fail, hanya lulus laluan relatif ke direktori ke pilihan --exclude seperti ditunjukkan di bawah:

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

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

Kecualikan Pelbagai Fail atau Direktori

Untuk mengecualikan beberapa fail atau direktori hanya tentukan beberapa pilihan - termasuk:

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

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

Sekiranya bilangan fail dan / atau direktori yang anda ingin kecualikan adalah besar, bukannya menggunakan pelbagai --exclude pilihan --exclude anda boleh nyatakan fail dan direktori yang anda ingin kecualikan dalam fail dan lulus fail ke --exclude-from pilihan.

Perintah di bawah ini sama persis dengan yang di atas:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ tidak termasuk-file.txt

file1.txt dir1/* dir2

Kecualikan Pelbagai Fail atau Direktori Berdasarkan Corak

Dengan rsync anda juga boleh mengecualikan fail dan direktori berdasarkan corak yang sepadan dengan fail atau nama direktori.

Sebagai contoh, untuk mengecualikan semua fail .jpg yang anda jalankan:

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

Ia adalah lebih rumit untuk mengecualikan semua fail dan direktori lain kecuali yang sepadan dengan corak tertentu. Katakan anda ingin mengecualikan semua fail dan direktori lain kecuali fail yang berakhir dengan .jpg .

Satu pilihan adalah dengan menggunakan arahan berikut:

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

Apabila menggunakan pelbagai termasuk / tidak termasuk pilihan, peraturan yang sepadan pertama terpakai.

  • --include='*.jpg' - Pertama kita termasuk semua .jpg fail. --include='*/' - Kemudian kita termasuk semua direktori di dalam direktori src_directory . Tanpa rsync ini hanya akan menyalin *.jpg fail di direktori tingkat atas. -m - Menghapus direktori kosong.

Pilihan lain adalah untuk menaikkan output perintah mencari ke rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  • -printf %P\\0\\n - akan mengeluarkan src_directory/ dari laluan fail. --files-from=- - bermaksud hanya memasukkan fail dari input standard (fail yang diluluskan dari perintah cari).

Kesimpulannya

Dalam tutorial ini, anda belajar bagaimana untuk mengecualikan fail dan direktori apabila memindahkan data dengan Rsync. Terdapat banyak lagi untuk mengetahui tentang Rsync di halaman Manual Pengguna Rsync.

terminal rsync