一、tar 排除
在進行文件備份、文件傳輸等工作時,經常需要對目錄或文件進行打包,這時tar是一個非常方便的工具。但有時候我們希望排除一些不需要備份或傳輸的目錄或文件,tar提供了–exclude選項,可以實現這一目的。
–exclude選項的語法如下:
--exclude=pattern
其中,pattern為一個正則表達式,用於匹配需要排除的文件或目錄。
舉個例子,假設我們要對/home目錄進行備份,但是希望排除/home/user1以及/home/user2這兩個子目錄,可以使用如下命令:
tar -cvzf backup.tar.gz /home --exclude=/home/user1 --exclude=/home/user2
二、tar打包排除目錄
除了使用–exclude選項以外,還可以使用通配符的方式排除一些目錄或文件。例如,如果我們希望排除/home目錄下以”.”開頭的所有子目錄,可以使用如下命令:
tar -cvzf backup.tar.gz /home --exclude=/home/.* --exclude=/home/*/.*/
其中,/home/.*和/home/*/.*/分別匹配以”.”開頭的文件和目錄。
三、tar打包排除某一目錄
有時候我們只需要排除某一目錄下的子目錄或文件,可以使用相對路徑的方式進行排除。例如,假設我們要排除/home/user1目錄下的所有子目錄和文件,可以使用如下命令:
tar -cvzf backup.tar.gz /home --exclude=user1/*
其中,user1/*表示排除/home/user1目錄下的所有子目錄和文件。
四、tar壓縮排除目錄
除了打包以外,tar還支持壓縮功能。壓縮時同樣可以使用–exclude選項,例如:
tar -czvf backup.tar.gz /home --exclude=/home/user1 --exclude=/home/user2
五、tar排除某個目錄
有時候我們希望只備份或傳輸某個目錄下的子目錄或文件,而不是整個目錄,可以使用–exclude選項來排除其他子目錄。例如,假設我們只希望備份/home/user1目錄下的subdir目錄,可以使用如下命令:
tar -cvzf backup.tar.gz /home/user1/subdir --exclude=/home/user1/*
其中,–exclude=/home/user1/*表示排除/home/user1目錄下的除subdir以外的所有子目錄和文件。
六、tar壓縮排除目錄下所有文件
有時候我們需要備份或傳輸某個目錄下所有子目錄和文件,但是排除該目錄本身,可以使用如下命令:
tar -czvf backup.tar.gz -C /home/user1 . --exclude=/home/user1
其中,-C選項表示在壓縮前先進入/home/user1目錄,”.”表示備份該目錄下所有文件和子目錄。
七、tar 排除多個目錄
使用–exclude選項排除多個目錄時,可以將多個選項串在一起,例如:
tar -cvzf backup.tar.gz /home --exclude=/home/user1 --exclude=/home/user2 --exclude=/home/user3
八、tar命令排除某個目錄
除了在命令中指定–exclude選項以外,還可以將排除規則寫入文件,使用-R選項加載該文件。例如,假設我們將需要排除的目錄和文件列表保存在exclude.txt文件中,可以使用如下命令:
tar -cvzf backup.tar.gz /home -R exclude.txt
exclude.txt文件內容如下:
/home/user1 /home/user2 /home/user3/file1.txt /home/user3/dir1
九、tar打包排除指定目錄
有時候我們希望只備份或傳輸指定目錄或文件,可以使用相對路徑的方式。例如,假設我們希望備份/home/user1/subdir目錄下的文件和子目錄,可以使用如下命令:
tar -cvzf backup.tar.gz /home/user1/subdir/*
通過以上幾種方式,我們可以使用tar命令靈活地排除不需要備份或傳輸的目錄或文件,提高了文件操作的靈活性和效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/189862.html