Rsync是一種快速同步的命令行程序,用于在兩個計算機之間同步文件和文件夾。借助Rsync,您可以鏡像數(shù)據(jù),創(chuàng)建增量備份。
在系統(tǒng)之間復(fù)制文件或者復(fù)制數(shù)據(jù)時,您可能要根據(jù)它們的名稱或位置排除一個或多個文件或目錄。
在本教程中,我們將向您展示如何使用rsync排除文件和目錄。并介紹--exclude-from,--exclude,--include選項的用法。
并舉例說明它們之間區(qū)別于關(guān)系,比如排除指定文件,排除指定目錄,排除多個文件或目錄,根據(jù)模式排除多個文件或目錄,還有選項之間的優(yōu)先級等。
開始之前
您應(yīng)該了解如何使用rsync。在下面的示例中,我們將rsync命令的-a
選項一起使用。
rsync命令將會遞歸同步目錄,傳輸特殊設(shè)備和塊設(shè)備,并保留符號鏈接,修改時間,組,所有權(quán)和權(quán)限。排除文件或目錄時,需要使用它們到源目錄的相對路徑。
有兩個選項可以指定要排除的文件和目錄,當使用rsync命令的--exclude
選項時直接指定要排除的目錄與文件。
當使用--exclude-from
選項時,這將從文件讀入要排除的文件與目錄。使用那個選項具體取決于你的喜好。
排除文件
要排除指定文件,請將文件的相對于源目錄的路徑傳遞給--exclude
選項。
例如參數(shù)--exclude 'file.txt' src_directory/
將會排除src_directory/file.txt
文件。
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
排除目錄
排除指定目錄與排除文件相同,只需將目錄相對源目錄的路徑傳遞給--exclude
選項。
如果要排除目錄內(nèi)容,但不排除目錄本身,請使用dir1/*
而不是dir1
。
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
排除多個文件目錄
要排除多個文件或目錄,只需指定多個--exclude
選項。如果您想使用單個--exclude
選項,則可以用大括號{}
列出要排除的文件和目錄并用逗號分隔。
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/
如果要排除的文件或目錄數(shù)量很大,則可以在一個文件中列出要排除的文件與目錄,然后將文件傳遞給--exclude-from
選項。
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
file1.txt
dir1/*
dir2
exclude-file.txt
根據(jù)模式排除多個文件或目錄
借助rsync,您還可以根據(jù)與文件或目錄名稱匹配的模式排除文件與目錄。例如參數(shù)--exclude '.jpg'
排除所有.jpg
文件。
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
假設(shè)您要排除其它的文件和目錄,但以.jpg
結(jié)尾的文件除外。一種選擇是指定參數(shù)--include='.jpg' --exclude='*'
。
在使用多個include
/exclude
選項時,rsync命令將應(yīng)用第一個匹配規(guī)則。
例如參數(shù)--include='.jpg' --include='/' --exclude='*'
的--include='/'
不會被rsync應(yīng)用
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
另一個選擇是將Find命令的標準輸出通過管道傳遞給rsync命令。-printf %P\\\\0\\\\n
-從文件路徑中刪除src_directory/
。
--files-from=-
表示僅包含來自標準輸入的文件,也就是從find
命令傳遞的文件。-
表示標準輸入。
find src_directory/ -name "*.jpg" -printf %P\\\\0\\\\n | rsync -a --files-from=- src_directory/ dst_directory/
結(jié)論
至此,您學習如何在Linux使用rsync命令排除文件和目錄。
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209325 -
計算機
+關(guān)注
關(guān)注
19文章
7488瀏覽量
87849 -
命令
+關(guān)注
關(guān)注
5文章
683瀏覽量
22011
發(fā)布評論請先 登錄
相關(guān)推薦
評論