一、基本概念
tar,全稱是tape archive,是Linux下的一個非常常見的歸檔工具。它可以將多個文件或目錄打包成一個文件,也可以將一個打包好的文件解壓出來。tar的常見後綴為 .tar。
在使用tar時,需要注意以下幾點:
1.打包時,tar會將所有目錄和文件打包為一個文件,因此需要注意對於不需要打包的目錄或文件進行排除。
# 將/home目錄下除了/tmp目錄外的所有文件和目錄打包為myhome.tar tar -cvf myhome.tar --exclude=/home/tmp /home
2.解壓時,由於tar不自動創建目錄,因此需要使用-m選項以保留完整的目錄結構:
# 將myhome.tar解壓到/tmp目錄下 tar -xvf myhome.tar -C /tmp -m
二、常見操作
1. 打包文件
tar可以將多個文件或目錄打包成一個文件。使用-c選項表示創建一個新的檔案,同時可以使用選項-f指定檔案的名稱:
# 將/home目錄下所有文件和目錄打包為myhome.tar tar -cvf myhome.tar /home
如果需要打包多個文件或目錄,可以在命令行中列出它們的路徑:
# 將/home目錄下的images和videos目錄和所有的 .txt 文件打包為mydocs.tar tar -cvf mydocs.tar /home/images /home/videos /home/*.txt
2. 查看檔案內容
使用命令-t可以查看tar檔案中包含的文件和目錄:
# 查看myhome.tar中包含的文件和目錄 tar -tf myhome.tar
3. 解壓文件
使用-x選項表示從檔案中提取文件,可以使用選項-f指定檔案的名稱,也可以將檔案文件作為標準輸入:
# 將myhome.tar解壓到當前目錄下 tar -xvf myhome.tar
如果要將文件解壓到指定的目錄下,可以使用參數-C指定目錄:
# 將mydocs.tar解壓到/home/user/docs目錄下 tar -xvf mydocs.tar -C /home/user/docs
4. 添加文件到檔案中
使用-r選項可以將文件或目錄添加到已經存在的檔案中。如果檔案文件不存在,會自動創建一個新的檔案文件:
# 將/home/user目錄添加到myhome.tar中 tar -rvf myhome.tar /home/user
5. 刪除檔案中的文件
使用選項–delete可以刪除檔案中的文件或目錄:
# 刪除myhome.tar中的/home/user目錄 tar --delete -vf myhome.tar /home/user
三、高級技巧
1. 壓縮文件
tar檔案可以和壓縮工具一起使用,以減少檔案文件的大小。常見的壓縮工具有gzip和bzip2。通常,使用這些工具會在原來的檔案名稱後添加相應的後綴來指示壓縮工具的類型。例如,.tar.gz表示使用gzip壓縮,.tar.bz2表示使用bzip2壓縮。需要注意的是,在解壓和查看文件內容時,需要對應使用相應的壓縮工具。
# 將/home目錄下所有文件和目錄打包為myhome.tar,並使用gzip進行壓縮 tar -czvf myhome.tar.gz /home
2. 打包並排除一些文件
常見的需要排除的文件或目錄包括臨時文件、日誌文件等,這些文件通常不需要打包。
# 打包/etc目錄,並排除掉日誌文件和臨時文件 tar -cvf etc.tar --exclude=/var/log --exclude=/tmp /etc
3. 打包不同目錄下的文件,並保持原來的目錄結構
如果需要打包不同目錄下的文件,並且需要保持原來的目錄結構,可以使用-C選項並指定文件的絕對路徑。以下示例將/home/user1/和/home/user2/目錄下的所有文本文件打包,並使用相對路徑將它們放置在/user_files/目錄下:
# 打包/home/user1/和/home/user2/目錄下的所有文本文件,保持原來的目錄結構,並將它們放置在/user_files/目錄下 tar -cvf /user_files/user_files.tar -C /home/user1/ ./ --wildcards --no-recursion "*.txt" -C /home/user2/ ./ --wildcards --no-recursion "*.txt"
4. 打包大文件並使用多個檔案
有時候需要打包的文件很大,無法放在同一個檔案中。可以使用–multi-volume選項,將打包的文件自動分成多個檔案。需要注意的是,tar無法知道下一個檔案文件的名稱。因此,在創建第一個檔案文件時,需要手動輸入下一個檔案文件的名稱或者通過管道將下一個檔案文件的名稱傳遞給tar:
# 將bigfile分成多個文件,每個文件大小為100MB tar -cvf - /path/to/bigfile --multi-volume --tape-length=100000 /media/backup | split -d -b 100M - bigfile.tar.
總結
tar是常見的文件歸檔工具,在Linux下具有廣泛的應用。本文介紹了tar基本操作、常見技巧以及高級技巧等內容,希望可以為Linux運維工程師提供一些參考。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/153830.html