linux打包與解包文件是什么-tar 命令使用與實例

linux打包與解包文件是什么-tar 命令使用與實例

linux tar 命令

Linux tar(英文全拼:tape archive )命令用于備份文件。

tar 是 Linux 和 unix 系統中用于歸檔文件和目錄的強大命令行工具

tar 名字來自 “tape archive”(磁帶歸檔),最初用于將文件打包到磁帶設備中,但現在廣泛用于在文件系統中打包和壓縮文件。

tar 通常用于將多個文件和目錄打包成一個歸檔文件,稱為 “tarball”(通常帶有 .tar 擴展名)。

tar 本身不壓縮文件,但可以與壓縮工具(如 gzip 或 bzip2)結合使用,創建壓縮的歸檔文件(如 .tar.gz 或 .tar.bz2)。

語法

 tar [options] -f archive.tar [files...] 
  • -f archive.tar:指定歸檔文件的名稱。
  • [files…]:要打包的文件和目錄。

options 參數

基本操作選項

  • -c:創建一個新的歸檔文件。
  • -x:解壓歸檔文件。
  • -t:列出歸檔文件的內容。
  • -r:向現有歸檔文件中追加文件。
  • -u:僅追加比歸檔文件中已有文件更新的文件。
  • -d:找到歸檔文件中與文件系統不同步的差異。
  • -A:將一個 .tar 文件追加到另一個 .tar 文件中。

文件選擇和排除

  • -f :指定歸檔文件的名稱(必須放在選項列表的最后)。
  • -C :切換到指定目錄進行操作。
  • –exclude=:排除匹配指定模式的文件。
  • –exclude-from=:從指定文件讀取要排除的模式。
  • –exclude-caches:排除目錄中的緩存文件。
  • –exclude-backups:排除以 ~ 結尾的備份文件。
  • –exclude-vcs:排除版本控制系統生成的文件(如 .git、.svn 等)。

壓縮和解壓選項

  • -z:使用 gzip 壓縮歸檔文件。
  • -j:使用 bzip2 壓縮歸檔文件。
  • -J:使用 xz 壓縮歸檔文件。
  • –lzip:使用 lzip 壓縮歸檔文件。
  • –lzma:使用 lzma 壓縮歸檔文件。
  • –lzop:使用 lzop 壓縮歸檔文件。
  • –zstd:使用 zstd 壓縮歸檔文件。
  • -a:自動選擇壓縮方式(基于歸檔文件的擴展名,如 .tar.gz、.tar.bz2 等)。
  • -I :使用指定的壓縮程序進行壓縮或解壓。

輸出和交互選項

  • -v:顯示詳細操作過程(verbose)。
  • –progress:顯示進度條(與 -v 一起使用時)。
  • -w 或 –interactive:在每次操作前詢問用戶確認。
  • –checkpoint:在處理每個文件后顯示一個檢查點。
  • –checkpoint-action=:在檢查點執行指定的動作,如 echo、dot 等。
  • –totals:在操作結束后顯示處理的總字節數。
  • –verbose:詳細顯示處理的信息。
  • –quiet:盡可能少的輸出信息。

文件和權限相關選項

  • -p:保留文件的原始權限(解壓時)。
  • –same-owner:嘗試將解壓的文件設為原始所有者(需超級用戶權限)。
  • –no-same-owner:不設置文件所有者。
  • –same-permissions:保留文件的原始權限(與 -p 相同)。
  • –no-same-permissions:不保留原始權限,使用當前用戶的 umask 設置權限。
  • -m:在解壓時不恢復文件的修改時間,而使用當前時間。

歸檔管理選項

  • -k 或 –keep-old-files:解壓時保留已有文件,不覆蓋。
  • –overwrite:解壓時強制覆蓋已有文件。
  • –remove-files:歸檔成功后刪除原始文件。
  • delete:從歸檔文件中刪除指定文件(僅限 gnu tar)。
  • –keep-newer-files:解壓時保留比歸檔中較新的文件。
  • –listed-incremental=:創建增量備份或從增量備份恢復。

文件系統和設備選項

  • -L :分割大于 N 字節的歸檔文件(對于磁帶機)。
  • –tape-Length=:指定磁帶長度(對于磁帶機)。
  • –multi-volume:創建或恢復多卷歸檔文件。
  • -M:與 –multi-volume 一起使用,處理多卷歸檔文件。
  • –use-compress-program=:使用指定的壓縮程序。

其他實用選項

  • transform=:重命名歸檔中的文件。
  • –strip-components=:解壓時剝離指定數量的路徑組件。
  • –ignore-failed-read:忽略讀取錯誤并繼續操作。
  • –occurrence=:在歸檔中選擇第 number 個出現的文件。
  • -S:處理稀疏文件(僅歸檔實際使用的塊)。
  • –no-recursion:不遞歸進入目錄。
  • -h 或 –dereference:歸檔符號鏈接指向的文件而非鏈接本身。

幫助和版本信息

  • –help:顯示幫助信息。
  • –version:顯示 tar 的版本信息。

實例

1、創建歸檔文件:將文件 file1、file2 和 Directory 打包到一個名為 archive.tar 的歸檔文件中。

tar -cvf archive.tar file1 file2 directory
  • -c: 創建新的歸檔文件
  • -v: 顯示詳細輸出,列出被添加到歸檔中的文件
  • -f: 指定歸檔文件的名稱

2、解壓歸檔文件:解壓名為 archive.tar 的歸檔文件,還原其中包含的文件和目錄。

tar -xvf archive.tar
  • -x: 解壓歸檔文件
  • -v: 顯示詳細輸出,列出被解壓的文件
  • -f: 指定要解壓的歸檔文件的名稱

3、壓縮歸檔文件:將名為 directory 的目錄打包成一個歸檔文件,然后使用 gzip 進行壓縮,生成名為 archive.tar.gz 的文件。

tar -czvf archive.tar.gz directory
  • -c: 創建新的歸檔文件
  • -z: 使用 gzip 壓縮歸檔文件
  • -v: 顯示詳細輸出,列出被添加到歸檔中的文件
  • -f: 指定歸檔文件的名稱

4、列出歸檔文件中的內容:列出名為 archive.tar 的歸檔文件中包含的所有文件和目錄。

tar -tvf archive.tar
  • -t: 列出歸檔文件中的內容
  • -v: 顯示詳細輸出,列出歸檔文件中的所有文件和目錄
  • -f: 指定要列出內容的歸檔文件的名稱

5、追加文件到已存在的歸檔中:將名為 newfile 的文件添加到已存在的名為 archive.tar 的歸檔文件中。

tar -rvf archive.tar newfile 
  • -r: 向已存在的歸檔中追加文件
  • -v: 顯示詳細輸出,列出被添加到歸檔中的文件
  • -f: 指定已存在的歸檔文件的名稱

6、創建一個經過 gzip 壓縮的歸檔文件:打包 directory 目錄下的所有文件和子目錄,并使用 gzip 壓縮,生成名為 archive.tar.gz 的歸檔文件。

tar -zcvf archive.tar.gz directory
  • -z: 表示要使用 gzip 進行壓縮。
  • -c: 表示創建新的歸檔文件。
  • -v: 表示詳細輸出,列出被添加到歸檔中的文件。
  • -f archive.tar.gz: 指定歸檔文件的名稱為 archive.tar.gz。

7、解壓一個已經被 gzip 壓縮的歸檔文件:解壓 example.tar.gz 文件,并在當前目錄下恢復其中包含的文件和目錄。

tar -zxvf example.tar.gz
  • -z: 表示要使用 gzip 解壓歸檔文件。
  • -x: 表示解壓操作。
  • -v: 表示詳細輸出,列出被解壓的文件。
  • -f example.tar.gz: 指定要解壓的歸檔文件的名稱為 example.tar.gz。

指定壓縮格式

tar 可以結合不同的壓縮程序來創建和解壓壓縮歸檔文件。

z : 使用 gzip 壓縮。

tar -czvf archive.tar.gz directory tar -xzvf archive.tar.gz

j: 使用 bzip2 壓縮。

 tar -cjvf archive.tar.bz2 directory tar -xjvf archive.tar.bz2

J: 使用 xz 壓縮。

 tar -cJvf archive.tar.xz directory tar -xJvf archive.tar.xz

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享