亚洲一区亚洲二区亚洲三区,午夜黄色毛片,日操,免费高清日本完整版,午夜香蕉,avtt天堂网手机版亚洲,日日做夜夜爽夜夜爽

數(shù)據(jù)備份與恢復,Linux中如何使用 tar 命令? 日期:2022-05-22 09:45 閱讀:

GNU tar(Tape AR chiver的縮寫)命令是 Linux 系統(tǒng)中使用最廣泛的歸檔實用程序。該命令直接在終端中可用,有助于創(chuàng)建、提取和列出存檔內(nèi)容。tar

該實用程序很簡單,并且有許多有用的選項可用于壓縮文件、管理備份或提取原始安裝。

曉林電腦教你通過示例和可用選項展示如何使用 tar 命令。




先決條件



Tar 命令語法


命令的tar一般語法是:


tar<operation mode> <option(s)> <archive> <file(s) orlocation(s)>


有三種可能的語法樣式來使用操作和選項:


1.傳統(tǒng)風格,集結(jié)在一起,沒有任何破折號。


例如:


tarcfv <archive> <file(s) or location(s)>


2. UNIX 短選項樣式,使用單個破折號和集群選項:


tar-cfv <archive> <file(s) or location(s)>


或者,在每個選項前添加一個破折號:


tar-c -f -v <archive> <file(s) or location(s)>


3.帶有雙破折號和描述性選項名稱的GNU 長選項樣式:


tar--create --file <archive> --verbose <file(s) or location(s)>


所有三種樣式都可以在一個tar命令中使用。


焦油命令選項


下表概述了常用的tar操作和選項。




按照下一節(jié)中的示例學習如何使用 tar。


Tar 命令示例


以下示例具有以下要求:


1.創(chuàng)建一個名為tar_examples的目錄并導航到該目錄:


mkdir tar_examples && cd tar_examples

2.在tar_examples中創(chuàng)建另一個名為files的目錄并進入該目錄:


mkdir files && cd files

3.創(chuàng)建文件以填充文件目錄:


touch file{0..100}.txt

要返回父目錄,請使用:


cd ..


下面的所有示例都來自tar_examples目錄。


1. 創(chuàng)建檔案


創(chuàng)建檔案的語法取決于檔案類型。要制作存檔,請使用taror-c操作--create。


創(chuàng)建一個 tar 存檔


要制作 tar 存檔(也稱為 tarball),請使用:


tar cf <archive name>.tar <file(s) or location(s)>

例如,歸檔文件目錄:


tar cf files.tar files

輸出列出了添加到存檔中的每個文件。顯示目錄內(nèi)容以查看創(chuàng)建的file.tar存檔:


tar cf files.tar files

輸出列出了添加到存檔中的每個文件。顯示目錄內(nèi)容以查看創(chuàng)建的file.tar存檔:


ls -l


創(chuàng)建 tar.gz 壓縮存檔


添加-z創(chuàng)建壓縮 GNUzip (gzip) 文件的選項:


tar czf <archive name>.tar.gz <file(s) or location(s)>

例如:


tar czf files.tar.gz files


文件大小小于常規(guī) tarball 文件和原始目錄。


創(chuàng)建 tar.bz2 壓縮存檔


bzip2 是一個文件壓縮程序,是 gzip 的替代方案。


要創(chuàng)建tar.bz2文件,請?zhí)砑?code>-j標記:


tar cjf <archive name>.tar.bz2 <file(s) or location(s)>

例如:


tar cjf files.tar.bz2 files


bzip2 具有更高的壓縮率,并且比 gzip 需要更長的時間。


創(chuàng)建 tar.xz 存檔


使用-J標簽以 tar.xz 格式壓縮檔案:


tar cJf <archive name>.tar.xz <file(s) or location(s)>

例如:


tar cJf files.tar.xz files

與 gzip 和 bz2 相比,xz 壓縮時間最長。但是,對于較大的文件,xz 具有最高的壓縮率。


2.創(chuàng)建后刪除文件


要在歸檔后從磁盤中刪除文件,請使用--remove-files末尾的選項:


tar cf <archive> <file(s) or location(s)> --remove-files

例如,使用files目錄創(chuàng)建一個 tar 存檔,并通過一個命令將其從磁盤中刪除:


tar cf files.tar files --remove-files


檢查目錄內(nèi)容以確認操作正常。


3. 從檔案中提取


從檔案或壓縮檔案中提取使用-xor--extract操作tar。附加選項取決于文件類型以及 tar 應在何處提取組件。


從 tar 存檔中提取


從 tar 存檔中提取的一般語法是:


tar xf <archive name>.tar

默認情況下, tar 將所有組件提取到當前目錄。要指示提取組件的位置,請?zhí)砑?/span>-C選項并指定路徑:


tar xfC <archive name>.tar <path>

例如,要創(chuàng)建一個名為 extract_tar 的目錄并從files.tar中提取文件,請運行:


mkdir extracted_tar && tar xfC files.tar extracted_tar


該命令不輸出確認消息。檢查目錄內(nèi)容,確認組件解壓成功。


從 tar.gz 存檔中提取


使用-z選項提取tar.gz文件:


tar xzf <archive name>.tar.gz

該命令提取當前目錄中的內(nèi)容。添加-C選項以指定位置:


tar xzfC <archive name>.tar.gz <location>

例如,創(chuàng)建一個名為 extract_gz 的新目錄并提files.tar.gz內(nèi)容


mkdir extracted_gz && tar xzfC files.tar.gz extracted_gz



與其他壓縮格式相比,tar.gz 壓縮檔案的提取時間最短。


從 tar.bz2 存檔中提取


要將文件從 tar.bz2 壓縮存檔中提取到當前目錄,請使用:


tar xjf <archive name>.tar.bz2

使用以下命令將 tar.bz2 歸檔文件提取到特定目錄中:


tar xjfC <archive name>tar.bz2 <location>

例如,創(chuàng)建一個目錄并從files.tar.bz2中提取內(nèi)容:


mkdir extracted_bz2 && tar xjfC files.tar.bz2 extracted_bz2


從 tar.xz 存檔中提取


添加-J從 tar.xz 壓縮檔案中提取的選項。在當前目錄中提取的語法是:


tar xJf <archive name>.tar.xz

要將內(nèi)容提取到特定目錄,請使用該-C選項并添加路徑:


tar xJfC <archive name>.tar.xz <location>

例如,創(chuàng)建一個目錄并提取files.tar.xz內(nèi)容:


mkdir extracted_xz && tar xJfC files.tar.xz extracted_xz


在提取時間方面,xz 壓縮格式介于 gz 和 bz2 之間。


4.覆蓋控制


Tar 覆蓋控件處理存檔中的文件名與工作目錄中的文件重疊的情況。


三種可能的覆蓋操作是:


1.覆蓋工作目錄中的文件:


tar xf <archive> <Optional file(s) or location(s)> --overwrite

2.不要覆蓋工作目錄中的文件:


tar xf <archive> <Optional file(s) or location(s)> --keep-old-files


如果文件已存在,則 tar 不會執(zhí)行提取。


3. 僅當文件比現(xiàn)有文件更新時才提取文件:


tar xf <archive> <Optional file(s) or location(s)> --keep-newer-files


如果工作目錄中的文件較新或相同,則 tar 不會提取文件。


5. 列出存檔內(nèi)容


使用以下命令列出存檔的內(nèi)容:


tar tf <archive>

該選項適用于任何包含 tar 的文件擴展名。


例如,列出files.tar存檔中的文件和目錄:


tar tf files.tar.gz


輸出列出了存檔中存儲的所有內(nèi)容。


6. 在存檔中查找文件


使用 tar 定位特定內(nèi)容的方法有兩種:


1.-t在檔案中列出文件的選項對于定位特定文件很方便。在命令后添加文件名(或名稱):


tar tf <archive> <file(s)>

例如,要在files.tar.gz存檔中找到file50.txt,請運行:


tar tf files.tar.gz file/file50.txt


該選項需要知道文件的可能路徑。


2. 將tar與grep命令一起使用來過濾輸出:


tar tf <archive> | grep <file(s)>

例如:


tar tf files.tar.gz | grep file50.txt


該選項不需要知道文件的可能路徑。


7. 在檔案中查找多個文件


使用該--wildcards選項匹配多個文件實例。例如:


tar tf files.tar.gz --wildcards file/files5*.txt


當文件具有相似名稱或過濾特定文件類型時應用通配符匹配。


8. 創(chuàng)建存檔時排除文件


要在創(chuàng)建期間從存檔中排除某些文件,請?zhí)砑右韵逻x項:


tar cf <archive> --exclude='<pattern>' <files(s) or location(s)>

例如,從 files 目錄創(chuàng)建存檔并排除所有 .txt 文件:


tar cf files.tar --exclude='*.txt' files

列出存檔內(nèi)容:


tar tf files.tar


輸出顯示沒有 .txt 文件,僅顯示存檔中的files目錄。


9. 從存檔中提取單個文件


如果您需要一個或多個文件,請避免提取整個存檔。


要從存檔中獲取單個文件:


1.列出內(nèi)容并檢查文件是否存在:


tar tf files.tar | grep file100.txt

輸出打印下一步所需文件的路徑。


2. 使用以下命令提取特定文件:


tar xf files.tar files/file100.txt


該命令僅使用指示的文件創(chuàng)建目錄文件。按照相同的步驟通過添加適當?shù)臉撕瀼膲嚎s檔案中提取單個文件。例如,使用-z從 tar.gz 文件中提取的選項。


10.詳細選項


詳細選項在運行 tar 命令后顯示附加信息。添加-v--verbose到任何操作以查看結(jié)果。


例如,創(chuàng)建一個 tar.gz 文件并添加-v


tar czfv files.tar.gz files


輸出顯示每個文件添加到存檔中。


-v當您添加兩次標記時,某些 tar 命令會顯示附加信息。例如,嘗試使用以下命令將文件添加到存檔-vv


tar czfvv files.tar.gz files


輸出打印一個長列表格式,看起來類似于運行l(wèi)s -l命令。


11. 從存檔中刪除


要從存檔中刪除,請找到要刪除的文件,例如:


tar tf files.tar | grep file100.txt

--delete然后,使用標簽刪除文件:


tar --delete -f files.tar files/file100.txt

刪除選項不適用于壓縮文件格式。


12. 將文件追加到存檔


-r使用標簽將文件附加到現(xiàn)有存檔。語法是:


tar rf <archive name>.tar <file(s) or location(s)>

例如,將壓縮的files.tar.gz文件附加到files.tar存檔:


tar rf files.tar files.tar.gz


已經(jīng)壓縮的存檔無法更新,因此該語法僅適用于 tarball 文件。


13. 合并檔案


使用--concatenateor-A選項來組合多個檔案?;菊Z法是:


tar Af <archive to extend> <archive to extend with>

例如,使用cp命令復制現(xiàn)有files.tar文件:


cp files.tar files_copy.tar

接下來,連接兩個檔案:


tar Af files.tar files_copy.tar

要確認串聯(lián)是否有效,請檢查文件大小。


14.存檔和文件之間的區(qū)別


要檢查存檔和磁盤上的文件之間的差異,請使用-d標記:


tar df <archive name>

該命令搜索相同的內(nèi)容并將它們與存檔中的內(nèi)容進行比較。該選項僅檢查現(xiàn)有文件并忽略任何新添

加的文件。


下面的步驟展示了如何使用-d--diff,或--compare標簽tar


1. 創(chuàng)建一個 tar 存檔:


tar cf files.tar files

2. 將存檔與現(xiàn)有目錄進行比較:


tar df files.tar


輸出不顯示任何內(nèi)容,這意味著現(xiàn)有文件之間沒有區(qū)別。


3. 將文本添加到files目錄中的現(xiàn)有文件:


echo 'Hello' >> files/file0.txt

4. 再次將存檔與現(xiàn)有目錄進行比較:


tar df files.tar


這一次,輸出顯示了特定文件的修改時間和大小的差異。通過比較可以深入了解創(chuàng)建存檔后對系統(tǒng)所做的任何更改。


15. 更新存檔中的文件


-u使用以下選項從磁盤更新存檔中的現(xiàn)有文件:


tar uf <archive> <file(s) or location(s)>

例如,使用更改的文本文件更新files.tar存檔:


tar uf files.tar files

檢查更改文件的 tar 內(nèi)容:


tar tfv files.tar | grep files0.txt


該命令使用更改的文件更新存檔而不進行任何覆蓋。


16.修改時間


Tar 提供了各種選項來修改文件的時間戳。--mtime通過添加選項并提供日期來在創(chuàng)建存檔時設置自定義日期:


tar cf <archive> <file(s) or location(s)> --mtime=YYYY-MM-DD

例如,創(chuàng)建一個存檔并將日期設置為 1999 年 1 月 1


tar cf files.tar files --mtime=1999-01-01


或者,提取具有當前日期和時間的文件:


tar xf files.tar -m


處理時間時的一個有用功能是過濾在特定日期之后修改的文件。例如,要提取在某個日期之后創(chuàng)建

的文件,請使用該--newer-mtime選項并添加日期:


tar xf <archive> --newer-mtime=YYYY-MM-DD

17. 權(quán)限


提取檔案時,有兩種可能的方法可以使用 tar 控制文件權(quán)限:


1. 保留原有權(quán)限:


tar xf <archive name> --preserve-permissions

權(quán)限在檔案創(chuàng)建之前的文件中說明。


2.修改權(quán)限為默認umask值:


tar xf <archive name> --no-same-permissions

這些文件采用默認的 Linux 權(quán)限。


18. 文件所有權(quán)


Tar 允許文件所有權(quán)配置。例如,要在創(chuàng)建存檔時設置文件所有者,請?zhí)砑?code>--owner和--group選項并

為每個選項提供值:


tar cf <archive> <file(s) or location(s)> --owner=<value> --group=<value>

所有者值表示UID(用戶 ID),而組值是GID(組 ID)。要為用戶查找這些值,請運行:


id <username>

例如,創(chuàng)建一個存檔并將所有權(quán)設置為 root:


tar cf files.tar files --owner=0 --group=0

Tar 允許在從存檔中提取時保留所有權(quán)。為此,請--same-owner在末尾添加選項:



tar xf <archive> --same-owner

19. 寫入外部程序


--to-command選項指示 tar 將每個提取的文件發(fā)送到外部程序的標準輸出?;菊Z法是:


tar xf <archive> --to-command='<command>'

例如,提取files.tar內(nèi)容并將文件名作為目錄傳遞:


tar xf files.tar --to-command='mkdir $TAR_FILENAME'


該命令創(chuàng)建以每個提取文件命名的目錄。有關(guān)更多信息和可用的Linux環(huán)境變量,請訪問手冊頁。


20. 創(chuàng)建每日備份


要自動執(zhí)行每日備份,請創(chuàng)建一個 bash 腳本并添加以下行:


tar czf backup-$(date +%Y%m%d).tar.gz files

find backup* -mtime +1 -delete

tar 命令創(chuàng)建一個壓縮存檔,而find命令查找一天前的備份文件。+1將參數(shù)更改+7為每周或+31每月備份。


結(jié)論


看完這篇文章,你就知道如何使用 tar 命令了。但是,還有其他各種可用的選項不在本教程中。使

用man命令查找有關(guān) tar 選項的所有詳細信息。


怀集县| 永兴县| 洞头县| 靖江市| 湟中县| 饶平县| 佛冈县| 大厂| 内黄县| 定结县| 铁岭县| 濮阳市| 弥渡县| 瓦房店市| 龙山县| 财经| 金山区| 盐城市| 云梦县| 永兴县| 岢岚县| 绥滨县| 鲁山县| 中阳县| 东兴市| 资源县| 德兴市| 萍乡市| 隆安县| 兴城市| 金华市| 同心县| 社旗县| 泗洪县| 光泽县| 历史| 额尔古纳市| 柳江县| 晋州市| 乌鲁木齐县| 当涂县|