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