詳細用法見:https://www.cnblogs.com/oboth-zl/articles/10334754.htmlhtml
主要用於數據同步、備份和鏡像,除了本地使用以外,也能夠經過rsync或者ssh協議進行網絡數據同步。bash
指定須要同步的文件。網絡
有以下目錄結構:ssh
若咱們只想導入1和2兩個目錄及其裏面的內容,咱們能夠執行spa
rsync -av rsync/1 rsync/2 rsync-0
能夠看到結果符合咱們預期。code
如用--files-from呢?htm
rsync -av --files-from=test.txt rsync rsync-1
test.txt內容爲blog
1get
2同步
1.txt
執行後的目錄結構
結果和咱們預期的不同,只有指定的文件和目錄,而沒有目錄下的其餘內容。
因此,--files-from選項只會同步指定的文件和目錄,而不會同步目錄下的其餘內容。
兩個選項含義相同,互相可做替換。用來指定包含或者不包含的文件。
基本格式:
+/include file
-/exclude file
/ 在名字前表根目錄
/ 在後表目
默認包含全部文件和目錄,因此 + 單獨使用無心義,常和 - 搭配使用。
好比
cat > rule.txt << EOF + Desktop/ + Desktop/* + .bashrc + .cshrc + /* - * EOF
rsync -av --exclude-from=rule.txt root rsync_dir
此規則表示僅同步Desktop及其下級目錄和文件,以及.bashrc、.cshrc。並不會同步Desktop/*/再下一級目錄,這裏須要注意。而且若註釋掉 /* 則不會同步任何數據。
而當規則換成這樣
cat > rule.txt << EOF
+ /root/Desktop/
+ /root/Desktop/*
+ /root/.bashrc
+ /root/.cshrc
+ /*
- *
EOF
結果和上面同樣。