<span id="vexk9"><table id="vexk9"></table></span>

      tar

      將許多文件一起保存至一個單獨的磁帶或磁盤歸檔,并能從歸檔中單獨還原所需文件。

      補充說明

      tar命令 可以為linux的文件和目錄創建檔案。利用tar,可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于備份文件或將幾個文件組合成為一個文件以便于網絡傳輸是非常有用的。

      首先要弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。

      為什么要區分這兩個概念呢?這源于Linux中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzip?bzip2命令)。

      語法

      tar [選項...] [FILE]...
      

      選項

      -A, --catenate, --concatenate   追加 tar 文件至歸檔
      -c, --create               創建一個新歸檔
      -d, --diff, --compare      找出歸檔和文件系統的差異
          --delete               從歸檔(非磁帶!)中刪除
      -r, --append               追加文件至歸檔結尾
      -t, --list                 列出歸檔內容
          --test-label           測試歸檔卷標并退出
      -u, --update               僅追加比歸檔中副本更新的文件
      -x, --extract, --get       從歸檔中解出文件
      
      操作修飾符:
      
            --check-device         當創建增量歸檔時檢查設備號(默認)
        -g, --listed-incremental=FILE   處理新式的 GNU 格式的增量備份
        -G, --incremental          處理老式的 GNU 格式的增量備份
            --ignore-failed-read
                                   當遇上不可讀文件時不要以非零值退出
            --level=NUMBER         所創建的增量列表歸檔的輸出級別
        -n, --seek                 歸檔可檢索
            --no-check-device      當創建增量歸檔時不要檢查設備號
            --no-seek              歸檔不可檢索
            --occurrence[=NUMBER]  僅處理歸檔中每個文件的第 NUMBER
                                   個事件;僅當與以下子命令 --delete,
                                   --diff, --extract 或是 --list
                                   中的一個聯合使用時,此選項才有效。而且不管文件列表是以命令行形式給出或是通過
                                   -T 選項指定的;NUMBER 值默認為 1
            --sparse-version=MAJOR[.MINOR]
                                   設置所用的離散格式版本(隱含
                                   --sparse)
        -S, --sparse               高效處理離散文件
      
       重寫控制:
      
        -k, --keep-old-files       don't replace existing files when extracting,
                                   treat them as errors
            --keep-directory-symlink   preserve existing symlinks to directories when
                                   extracting
            --keep-newer-files
                                   不要替換比歸檔中副本更新的已存在的文件
            --no-overwrite-dir     保留已存在目錄的元數據
            --overwrite            解壓時重寫存在的文件
            --overwrite-dir        解壓時重寫已存在目錄的元數據(默認)
      
            --recursive-unlink     解壓目錄之前先清除目錄層次
            --remove-files         在添加文件至歸檔后刪除它們
            --skip-old-files       don't replace existing files when extracting,
                                   silently skip over them
        -U, --unlink-first         在解壓要重寫的文件之前先刪除它們
        -W, --verify               在寫入以后嘗試校驗歸檔
      
       選擇輸出流:
      
            --ignore-command-error 忽略子進程的退出代碼
            --no-ignore-command-error
                                   將子進程的非零退出代碼認為發生錯誤
        -O, --to-stdout            解壓文件至標準輸出
            --to-command=COMMAND
                                   將解壓的文件通過管道傳送至另一個程序
      
       操作文件屬性:
      
            --atime-preserve[=METHOD]
                                   在輸出的文件上保留訪問時間,要么通過在讀取(默認
                                   METHOD=‘replace’)后還原時間,要不就不要在第一次(METHOD=‘system’)設置時間
            --delay-directory-restore
                                   直到解壓結束才設置修改時間和所解目錄的權限
            --group=名稱         強制將 NAME
                                   作為所添加的文件的組所有者
            --mode=CHANGES         強制將所添加的文件(符號)更改為權限
                                   CHANGES
            --mtime=DATE-OR-FILE   從 DATE-OR-FILE 中為添加的文件設置
                                   mtime
        -m, --touch                不要解壓文件的修改時間
            --no-delay-directory-restore
                                   取消 --delay-directory-restore 選項的效果
            --no-same-owner
                                   將文件解壓為您所有(普通用戶默認此項)
            --no-same-permissions
                                   從歸檔中解壓權限時使用用戶的掩碼位(默認為普通用戶服務)
            --numeric-owner        總是以數字代表用戶/組的名稱
            --owner=名稱         強制將 NAME
                                   作為所添加的文件的所有者
        -p, --preserve-permissions, --same-permissions
                                   解壓文件權限信息(默認只為超級用戶服務)
            --preserve             與 -p 和 -s 一樣
            --same-owner
                                   嘗試解壓時保持所有者關系一致(超級用戶默認此項)
        -s, --preserve-order, --same-order
                                   member arguments are listed in the same order as
                                   the files in the archive
      
       Handling of extended file attributes:
      
            --acls                 Enable the POSIX ACLs support
            --no-acls              Disable the POSIX ACLs support
            --no-selinux           Disable the SELinux context support
            --no-xattrs            Disable extended attributes support
            --selinux              Enable the SELinux context support
            --xattrs               Enable extended attributes support
            --xattrs-exclude=MASK  specify the exclude pattern for xattr keys
            --xattrs-include=MASK  specify the include pattern for xattr keys
      
       設備選擇和切換:
      
        -f, --file=ARCHIVE         使用歸檔文件或 ARCHIVE 設備
            --force-local
                                   即使歸檔文件存在副本還是把它認為是本地歸檔
        -F, --info-script=名稱, --new-volume-script=名稱
                                   在每卷磁帶最后運行腳本(隱含 -M)
        -L, --tape-length=NUMBER   寫入 NUMBER × 1024 字節后更換磁帶
        -M, --multi-volume         創建/列出/解壓多卷歸檔文件
            --rmt-command=COMMAND  使用指定的 rmt COMMAND 代替 rmt
            --rsh-command=COMMAND  使用遠程 COMMAND 代替 rsh
            --volno-file=FILE      使用/更新 FILE 中的卷數
      
       設備分塊:
      
        -b, --blocking-factor=BLOCKS   每個記錄 BLOCKS x 512 字節
        -B, --read-full-records    讀取時重新分塊(只對 4.2BSD 管道有效)
        -i, --ignore-zeros         忽略歸檔中的零字節塊(即文件結尾)
            --record-size=NUMBER   每個記錄的字節數 NUMBER,乘以 512
      
       選擇歸檔格式:
      
        -H, --format=FORMAT        創建指定格式的歸檔
      
       FORMAT 是以下格式中的一種:
      
          gnu                      GNU tar 1.13.x 格式
          oldgnu                   GNU 格式 as per tar <= 1.12
          pax                      POSIX 1003.1-2001 (pax) 格式
          posix                    等同于 pax
          ustar                    POSIX 1003.1-1988 (ustar) 格式
          v7                       old V7 tar 格式
      
            --old-archive, --portability
                                   等同于 --format=v7
            --pax-option=關鍵字[[:]=][,關鍵字[[:]=]]...
                                   控制 pax 關鍵字
            --posix                等同于 --format=posix
        -V, --label=TEXT           創建帶有卷名 TEXT
                                   的歸檔;在列出/解壓時,使用 TEXT
                                   作為卷名的模式串
      
       壓縮選項:
      
        -a, --auto-compress        使用歸檔后綴名來決定壓縮程序
        -I, --use-compress-program=PROG
                                   通過 PROG 過濾(必須是能接受 -d
                                   選項的程序)
        -j, --bzip2                通過 bzip2 過濾歸檔
        -J, --xz                   通過 xz 過濾歸檔
            --lzip                 通過 lzip 過濾歸檔
            --lzma                 通過 lzma 過濾歸檔
            --lzop
            --no-auto-compress     不使用歸檔后綴名來決定壓縮程序
        -z, --gzip, --gunzip, --ungzip   通過 gzip 過濾歸檔
        -Z, --compress, --uncompress   通過 compress 過濾歸檔
      
       本地文件選擇:
      
            --add-file=FILE        添加指定的 FILE 至歸檔(如果名字以 -
                                   開始會很有用的)
            --backup[=CONTROL]     在刪除前備份,選擇 CONTROL 版本
        -C, --directory=DIR        改變至目錄 DIR
            --exclude=PATTERN      排除以 PATTERN 指定的文件
            --exclude-backups      排除備份和鎖文件
            --exclude-caches       除標識文件本身外,排除包含
                                   CACHEDIR.TAG 的目錄中的內容
            --exclude-caches-all   排除包含 CACHEDIR.TAG 的目錄
            --exclude-caches-under 排除包含 CACHEDIR.TAG 的目錄中所有內容
      
            --exclude-tag=FILE     除 FILE 自身外,排除包含 FILE
                                   的目錄中的內容
            --exclude-tag-all=FILE 排除包含 FILE 的目錄
            --exclude-tag-under=FILE   排除包含 FILE 的目錄中的所有內容
            --exclude-vcs          排除版本控制系統目錄
        -h, --dereference
                                   跟蹤符號鏈接;將它們所指向的文件歸檔并輸出
            --hard-dereference
                                   跟蹤硬鏈接;將它們所指向的文件歸檔并輸出
        -K, --starting-file=MEMBER-NAME
                                   begin at member MEMBER-NAME when reading the
                                   archive
            --newer-mtime=DATE     當只有數據改變時比較數據和時間
            --no-null              禁用上一次的效果 --null 選項
            --no-recursion         避免目錄中的自動降級
            --no-unquote           不以 -T 讀取的文件名作為引用結束
            --null                 -T 讀取以空終止的名字,-C 禁用
        -N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE
                                   只保存比 DATE-OR-FILE 更新的文件
            --one-file-system      創建歸檔時保存在本地文件系統中
        -P, --absolute-names       不要從文件名中清除引導符‘/’
            --recursion            目錄遞歸(默認)
            --suffix=STRING        在刪除前備份,除非被環境變量
                                   SIMPLE_BACKUP_SUFFIX
                                   覆蓋,否則覆蓋常用后綴(‘’)
        -T, --files-from=FILE      從 FILE
                                   中獲取文件名來解壓或創建文件
            --unquote              以 -T
                                   讀取的文件名作為引用結束(默認)
        -X, --exclude-from=FILE    排除 FILE 中列出的模式串
      
       文件名變換:
      
            --strip-components=NUMBER   解壓時從文件名中清除 NUMBER
                                   個引導部分
            --transform=EXPRESSION, --xform=EXPRESSION
                                   使用 sed 代替 EXPRESSION
                                   來進行文件名變換
      
       文件名匹配選項(同時影響排除和包括模式串):
      
            --anchored             模式串匹配文件名頭部
            --ignore-case          忽略大小寫
            --no-anchored          模式串匹配任意‘/’后字符(默認對
                                   exclusion 有效)
            --no-ignore-case       匹配大小寫(默認)
            --no-wildcards         逐字匹配字符串
            --no-wildcards-match-slash   通配符不匹配‘/’
            --wildcards            use wildcards (default)
            --wildcards-match-slash
                                   通配符匹配‘/’(默認對排除操作有效)
      
       提示性輸出:
      
            --checkpoint[=NUMBER]  每隔 NUMBER
                                   個記錄顯示進度信息(默認為 10)
            --checkpoint-action=ACTION   在每個檢查點上執行 ACTION
            --full-time            print file time to its full resolution
            --index-file=FILE      將詳細輸出發送至 FILE
        -l, --check-links
                                   只要不是所有鏈接都被輸出就打印信息
            --no-quote-chars=STRING   禁用來自 STRING 的字符引用
            --quote-chars=STRING   來自 STRING 的額外的引用字符
            --quoting-style=STYLE  設置名稱引用風格;有效的 STYLE
                                   值請參閱以下說明
        -R, --block-number         每個信息都顯示歸檔內的塊數
            --show-defaults        顯示 tar 默認選項
            --show-omitted-dirs
                                   列表或解壓時,列出每個不匹配查找標準的目錄
            --show-transformed-names, --show-stored-names
                                   顯示變換后的文件名或歸檔名
            --totals[=SIGNAL]      處理歸檔后打印出總字節數;當此
                                   SIGNAL 被觸發時帶參數 -
                                   打印總字節數;允許的信號為:
                                   SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和
                                   SIGUSR2;同時也接受不帶 SIG
                                   前綴的信號名稱
            --utc                  以 UTC 格式打印文件修改時間
        -v, --verbose              詳細地列出處理的文件
            --warning=KEYWORD      警告控制:
        -w, --interactive, --confirmation
                                   每次操作都要求確認
      
       兼容性選項:
      
        -o                         創建歸檔時,相當于
                                   --old-archive;展開歸檔時,相當于
                                   --no-same-owner
      
       其它選項:
      
        -?, --help                 顯示此幫助列表
            --restrict             禁用某些潛在的有危險的選項
            --usage                顯示簡短的用法說明
            --version              打印程序版本
      
      長選項和相應短選項具有相同的強制參數或可選參數。
      
      除非以 --suffix 或 SIMPLE_BACKUP_SUFFIX
      設置備份后綴,否則備份后綴就是“~”。
      可以用 --backup 或 VERSION_CONTROL 設置版本控制,可能的值為:
      
        none, off	   從不做備份
        t, numbered     進行編號備份
        nil, existing
      如果編號備份存在則進行編號備份,否則進行簡單備份
        never, simple   總是使用簡單備份
      
      --quoting-style 選項的有效參數為:
      
        literal
        shell
        shell-always
        c
        c-maybe
        escape
        locale
        clocale
      
      此 tar 默認為:
      --format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt
      --rsh-command=/usr/bin/ssh
      

      參數

      文件或目錄:指定要打包的文件或目錄列表。

      實例

      - z:有gzip屬性的
      - j:有bz2屬性的
      - Z:有compress屬性的
      - v:顯示所有過程
      - O:將文件解開到標準輸出
      
      tar -cf archive.tar foo bar  # 從文件 foo 和 bar 創建歸檔文件 archive.tar。
      tar -tvf archive.tar         # 詳細列舉歸檔文件 archive.tar 中的所有文件。
      tar -xf archive.tar          # 展開歸檔文件 archive.tar 中的所有文件。
      

      下面的參數-f是必須的

      -f: 使用檔案名字,切記,這個參數是最后一個參數,后面只能接檔案名。

      tar -cf all.tar *.jpg
      # 這條命令是將所有.jpg的文件打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的文件名。
      
      tar -rf all.tar *.gif
      # 這條命令是將所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
      
      tar -uf all.tar logo.gif
      # 這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
      
      tar -tf all.tar
      # 這條命令是列出all.tar包中所有文件,-t是列出文件的意思
      
      tar -cvf archive.tar foo bar  # 從文件foo和bar創建archive.tar。
      tar -tvf archive.tar         # 詳細列出archive.tar中的所有文件。
      tar -xf archive.tar          # 從archive.tar提取所有文件。
      

      zip格式

      壓縮: zip -r [目標文件名].zip [原文件/目錄名]
      解壓: unzip [原文件名].zip
      注:-r參數代表遞歸

      tar格式(該格式僅僅打包,不壓縮)

      打包:tar -cvf [目標文件名].tar [原文件名/目錄名]
      解包:tar -xvf [原文件名].tar
      注:c參數代表create(創建),x參數代表extract(解包),v參數代表verbose(詳細信息),f參數代表filename(文件名),所以f后必須接文件名。

      tar.gz格式

      方式一:利用前面已經打包好的tar文件,直接用壓縮命令。

      壓縮:gzip [原文件名].tar
      解壓:gunzip [原文件名].tar.gz

      方式二:一次性打包并壓縮、解壓并解包

      打包并壓縮: tar -zcvf [目標文件名].tar.gz [原文件名/目錄名]
      解壓并解包: tar -zxvf [原文件名].tar.gz
      注:z代表用gzip算法來壓縮/解壓。

      tar.bz2格式

      方式一:利用已經打包好的tar文件,直接執行壓縮命令:

      壓縮:bzip2 [原文件名].tar
      解壓:bunzip2 [原文件名].tar.bz2
      方式二:一次性打包并壓縮、解壓并解包

      打包并壓縮: tar -jcvf [目標文件名].tar.bz2 [原文件名/目錄名]
      解壓并解包: tar -jxvf [原文件名].tar.bz2
      注:小寫j代表用bzip2算法來壓縮/解壓。

      tar.xz格式

      方式一:利用已經打包好的tar文件,直接用壓縮命令:

      壓縮:xz [原文件名].tar
      解壓:unxz [原文件名].tar.xz
      方式二:一次性打包并壓縮、解壓并解包

      打包并壓縮: tar -Jcvf [目標文件名].tar.xz [原文件名/目錄名]
      解壓并解包: tar -Jxvf [原文件名].tar.xz
      注:大寫J代表用xz算法來壓縮/解壓。

      tar.Z格式(已過時)

      方式一:利用已經打包好的tar文件,直接用壓縮命令:

      壓縮:compress [原文件名].tar
      解壓:uncompress [原文件名].tar.Z
      方式二:一次性打包并壓縮、解壓并解包

      打包并壓縮: tar -Zcvf [目標文件名].tar.Z [原文件名/目錄名]
      解壓并解包: tar -Zxvf [原文件名].tar.Z
      注:大寫Z代表用ncompress算法來壓縮/解壓。另,ncompress是早期Unix系統的壓縮格式,但由于ncompress的壓縮率太低,現已過時。

      jar格式

      壓縮:jar -cvf [目標文件名].jar [原文件名/目錄名]
      解壓:jar -xvf [原文件名].jar

      注:如果是打包的是Java類庫,并且該類庫中存在主類,那么需要寫一個META-INF/MANIFEST.MF配置文件,內容如下:

      Manifest-Version: 1.0
      Created-By: 1.6.0_27 (Sun Microsystems Inc.)
      Main-class: the_name_of_the_main_class_should_be_put_here
      

      然后用如下命令打包:

      jar -cvfm [目標文件名].jar META-INF/MANIFEST.MF [原文件名/目錄名]
      這樣以后就能用“java -jar [文件名].jar”命令直接運行主類中的public static void main方法了。

      7z格式

      壓縮:7z a [目標文件名].7z [原文件名/目錄名]
      解壓:7z x [原文件名].7z
      注:這個7z解壓命令支持rar格式,即:

      7z x [原文件名].rar

      其它例子

      將文件全部打包成tar包

      tar -cvf log.tar log2012.log    僅打包,不壓縮!
      tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 壓縮
      tar -jcvf log.tar.bz2 log2012.log  打包后,以 bzip2 壓縮
      

      在選項f之后的文件檔名是自己取的,我們習慣上都用?.tar?來作為辨識。?如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j選項,則以.tar.bz2來作為tar包名。

      解壓目錄

      去掉第一層目錄結構,要出除第二層,--strip-components 2

      tar -xvf portal-web-v2.0.0.tar --strip-components 1  -C 指定目錄
      

      查閱上述tar包內有哪些文件

      tar -ztvf log.tar.gz
      

      由于我們使用?gzip?壓縮的log.tar.gz,所以要查閱log.tar.gz包內的文件時,就得要加上z這個選項了。

      將tar包解壓縮

      tar -zxvf /opt/soft/test/log.tar.gz
      

      在預設的情況下,我們可以將壓縮檔在任何地方解開的

      只將tar內的部分文件解壓出來

      tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
      

      我可以透過tar?-ztvf來查閱?tar?包內的文件名稱,如果單只要一個文件,就可以透過這個方式來解壓部分文件!

      文件備份下來,并且保存其權限

      tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
      

      這個-p的屬性是很重要的,尤其是當您要保留原本文件的屬性時。

      在文件夾當中,比某個日期新的文件才備份

      tar -N "2012/11/13" -zcvf log17.tar.gz test
      

      備份文件夾內容是排除部分文件:

      tar --exclude scf/service -zcvf scf.tar.gz scf/*
      

      打包文件之后刪除源文件:

      tar -cvf test.tar test --remove-files
      

      其實最簡單的使用 tar 就只要記憶底下的方式即可:

      壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
      查 詢:tar -jtv -f filename.tar.bz2
      解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
      
      主站蜘蛛池模板: 国产在线一区二区综合免费视频| 色天天综合色天天碰| 亚洲国产精品综合久久久| 亚洲av伊人久久综合密臀性色| 伊人色综合一区二区三区| 狠狠色丁香婷婷久久综合不卡| 精品国产国产综合精品| 久久99亚洲综合精品首页| 精品国产综合成人亚洲区| 亚洲综合男人的天堂色婷婷| 色偷偷尼玛图亚洲综合| 激情综合色五月丁香六月亚洲 | 色偷偷亚洲第一综合网| 综合人妻久久一区二区精品| 亚洲综合激情另类小说区| 亚洲伊人久久成综合人影院| 激情综合网五月激情| 亚洲另类激情综合偷自拍图| 婷婷国产天堂久久综合五月| 久久伊人久久亚洲综合| 国产99久久亚洲综合精品| 亚洲综合在线视频| 99久久国产综合精品女同图片| 噜噜综合亚洲AV中文无码| 亚洲国产综合精品一区在线播放 | 天天做天天爱天天爽综合区| 亚洲人成网站999久久久综合| 狠狠色丁香婷婷综合尤物| 国产成人综合色视频精品| 好了av第四综合无码久久| 图图资源网亚洲综合网站| 国产综合一区二区| 国产香蕉尹人综合在线| 亚洲综合激情九月婷婷| 亚洲国产综合在线| 好了av第四综合无码久久| 狠狠久久综合伊人不卡| 国产精品综合色区在线观看| 久久大香线蕉综合爱| 色悠久久久久久久综合网| 一本大道AV伊人久久综合|