Saya mencoba mem-backup direktori home saya menggunakan rsync, dan saya ingin mengecualikan beberapa direktori yang berisi sampah. Saya ingin secara khusus mengecualikan /home/ben/.ccache
dan /home/ben/build
. Sayangnya dokumentasi untuk rsync adalah informasi yang berlebihan dan tidak menjawab pertanyaan saya. Inilah yang saya coba:
rsync -arv --exclude "/home/ben/.ccache:/home/ben/build" /home/ben /media/ben/thumbdrive/
Apa cara yang tepat untuk melakukan ini?
command-line
rsync
Freedom_Ben
sumber
sumber
a
menyiratkanr
:)-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Jawaban:
OK saya merasa sangat bodoh. Bahkan sebelum saya memposting pertanyaan ini teman saya menunjukkan kepada saya bagaimana melakukannya dan itu sangat sederhana. Untuk mengecualikan beberapa direktori Anda cukup menggunakan beberapa
--exclude=path
sakelar. Jadi perintah saya di atas ditulis dengan benar adalah sebagai berikut:sumber
-a
termasuk-r
jadi-ar
mubazir.Ketika memiliki beberapa direktori dan / atau file untuk dikecualikan, buat file teks dan gunakan
--exclude-from
sakelar. Buat file dipanggilexclude_me.txt
dan di dalamnya cantumkan pengecualian Anda. Contoh (/home/ben/exclude_me.txt
):Maka rsync Anda akan terlihat seperti ini:
Ini adalah beberapa informasi tentang aturan filter yang dapat membantu:
/dir/
berarti mengecualikan folder root/dir
/dir/*
berarti mendapatkan folder root/dir
tetapi bukan isinyadir/
berarti mengecualikan folder apa pun di mana pun namanya mengandungdir/
Contoh yang dikecualikan:
/dir/, /usr/share/directory/, /var/spool/dir/ /var/spool/lpd/cf
berarti melewatkan file yang dimulai dengancf
folder apa pun di dalamnya/var/spool/lpd
Juga lihat bagian aturan filter pada halaman manual.
sumber
Anda juga dapat mengecualikan beberapa jalur dalam kurung kurawal:
sumber
IFS=$'\n'; rsync -arv $(printf '.ccache\nbuild\n' | sed 's/^/--exclude=/g') /home/ben /media/ben/thumbdrive/
. Atau, Anda bisa menggunakan beberapa--exclude
argumen, yang harus Anda ketikkan secara manual.