• <s id="iyn6y"></s><label id="iyn6y"></label>
    <s id="iyn6y"></s>

    <span id="iyn6y"></span>
    <label id="iyn6y"></label>
    數據備份與恢復,Linux中如何使用 tar 命令? 日期:2022-05-22 09:45 閱讀:

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

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

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




    先決條件



    Tar 命令語(yǔ)法


    命令的tar一般語(yǔ)法是:


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


    有三種可能的語(yǔ)法樣式來(lái)使用操作和選項:


    1.傳統風(fēng)格,集結在一起,沒(méi)有任何破折號。


    例如:


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


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


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


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


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


    3.帶有雙破折號和描述性選項名稱(chēng)的GNU 長(cháng)選項樣式:


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


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


    焦油命令選項


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




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


    Tar 命令示例


    以下示例具有以下要求:


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


    mkdir tar_examples && cd tar_examples
    
    

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


    mkdir files && cd files
    
    

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


    touch file{0..100}.txt
    
    

    要返回父目錄,請使用:


    cd ..
    
    
    
    

    下面的所有示例都來(lái)自tar_examples目錄。


    1. 創(chuàng )建檔案


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


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


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


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

    例如,歸檔文件目錄:


    tar cf files.tar files
    
    

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


    tar cf files.tar files
    
    

    輸出列出了添加到存檔中的每個(gè)文件。顯示目錄內容以查看創(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
    
    
    
    

    文件大小小于常規 tarball 文件和原始目錄。


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


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


    要創(chuàng )建tar.bz2文件,請添加-j標記:


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

    例如:


    tar cjf files.tar.bz2 files
    
    
    
    

    bzip2 具有更高的壓縮率,并且比 gzip 需要更長(cháng)的時(shí)間。


    創(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 壓縮時(shí)間最長(cháng)。但是,對于較大的文件,xz 具有最高的壓縮率。


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


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


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

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


    tar cf files.tar files --remove-files
    
    
    
    

    檢查目錄內容以確認操作正常。


    3. 從檔案中提取


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


    從 tar 存檔中提取


    從 tar 存檔中提取的一般語(yǔ)法是:


    tar xf <archive name>.tar
    
    

    默認情況下, tar 將所有組件提取到當前目錄。要指示提取組件的位置,請添加-C選項并指定路徑:


    tar xfC <archive name>.tar <path>
    
    

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


    mkdir extracted_tar && tar xfC files.tar extracted_tar
    
    
    
    

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


    從 tar.gz 存檔中提取


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


    tar xzf <archive name>.tar.gz
    
    

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


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

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


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

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


    從 tar.bz2 存檔中提取


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


    tar xjf <archive name>.tar.bz2
    
    

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


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

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


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

    從 tar.xz 存檔中提取


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


    tar xJf <archive name>.tar.xz
    
    

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


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

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


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

    在提取時(shí)間方面,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 不會(huì )執行提取。


    3. 僅當文件比現有文件更新時(shí)才提取文件:


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

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


    5. 列出存檔內容


    使用以下命令列出存檔的內容:


    tar tf <archive>
    
    

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


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


    tar tf files.tar.gz
    
    
    
    

    輸出列出了存檔中存儲的所有內容。


    6. 在存檔中查找文件


    使用 tar 定位特定內容的方法有兩種:


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


    tar tf <archive> <file(s)>
    
    

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


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

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


    2. 將tar與grep命令一起使用來(lái)過(guò)濾輸出:


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

    例如:


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

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


    7. 在檔案中查找多個(gè)文件


    使用該--wildcards選項匹配多個(gè)文件實(shí)例。例如:


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

    當文件具有相似名稱(chēng)或過(guò)濾特定文件類(lèi)型時(shí)應用通配符匹配。


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


    要在創(chuàng )建期間從存檔中排除某些文件,請添加以下選項:


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

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


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

    列出存檔內容:


    tar tf files.tar
    
    
    
    

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


    9. 從存檔中提取單個(gè)文件


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


    要從存檔中獲取單個(gè)文件:


    1.列出內容并檢查文件是否存在:


    tar tf files.tar | grep file100.txt
    
    

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


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


    tar xf files.tar files/file100.txt
    
    
    
    

    該命令僅使用指示的文件創(chuàng )建目錄文件。按照相同的步驟通過(guò)添加適當的標簽從壓縮檔案中提取單個(gè)文件。例如,使用-z從 tar.gz 文件中提取的選項。


    10.詳細選項


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


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


    tar czfv files.tar.gz files
    
    
    
    

    輸出顯示每個(gè)文件添加到存檔中。


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


    tar czfvv files.tar.gz files
    
    
    
    

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


    11. 從存檔中刪除


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


    tar tf files.tar | grep file100.txt
    
    

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


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

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


    12. 將文件追加到存檔


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


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

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


    tar rf files.tar files.tar.gz
    
    
    
    

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


    13. 合并檔案


    使用--concatenateor-A選項來(lái)組合多個(gè)檔案。基本語(yǔ)法是:


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

    例如,使用cp命令復制現有files.tar文件:


    cp files.tar files_copy.tar
    
    

    接下來(lái),連接兩個(gè)檔案:


    tar Af files.tar files_copy.tar
    
    

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


    14.存檔和文件之間的區別


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


    tar df <archive name>
    
    

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

    加的文件。


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


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


    tar cf files.tar files
    
    

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


    tar df files.tar
    
    
    
    

    輸出不顯示任何內容,這意味著(zhù)現有文件之間沒(méi)有區別。


    3. 將文本添加到files目錄中的現有文件:


    echo 'Hello' >> files/file0.txt
    
    

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


    tar df files.tar
    
    
    
    

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


    15. 更新存檔中的文件


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


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

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


    tar uf files.tar files
    
    

    檢查更改文件的 tar 內容:


    tar tfv files.tar | grep files0.txt
    
    
    
    

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


    16.修改時(shí)間


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


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

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


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

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


    tar xf files.tar -m
    
    
    
    

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

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


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

    17. 權限


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


    1. 保留原有權限:


    tar xf <archive name> --preserve-permissions
    
    

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


    2.修改權限為默認umask值:


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

    這些文件采用默認的 Linux 權限。


    18. 文件所有權


    Tar 允許文件所有權配置。例如,要在創(chuàng )建存檔時(shí)設置文件所有者,請添加--owner--group選項并

    為每個(gè)選項提供值:


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

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


    id <username>
    
    

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


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

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



    tar xf <archive> --same-owner
    
    

    19. 寫(xiě)入外部程序


    --to-command選項指示 tar 將每個(gè)提取的文件發(fā)送到外部程序的標準輸出。基本語(yǔ)法是:


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

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


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

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


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


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


    tar czf backup-$(date +%Y%m%d).tar.gz files
    
    
    find backup* -mtime +1 -delete
    
    

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


    結論


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

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


    a毛片在线观看,a级成人免费毛片完整版,成年人毛片视频,亚洲国产字幕 建水县| 濮阳县| 长汀县| 冀州市| 金华市| 周宁县| 阜宁县| 锡林郭勒盟| 焦作市| 镶黄旗| 夏河县| 长岛县| 新闻| 浦县| 榆社县| 晋江市| 汉阴县| 五莲县| 合水县| 台湾省| 康平县| 齐河县| 沂源县| 米易县| 玉林市| 天等县| 泰和县| 津市市| 微山县| 北票市| 台北市| 天峨县| 昔阳县| 石泉县| 淄博市| 肇源县| 固镇县| 本溪市| 盈江县| 耒阳市| 青海省| http://444 http://444 http://444 http://444 http://444 http://444