日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tar命令

發布時間:2025/7/14 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tar命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過SSH訪問服務器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的一個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。

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

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

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

linux下最常用的打包程序就是tar了,使用tar程序打出來的包我們常稱為tar包,tar包文件的命令通常都是以.tar結尾的。生成tar包后,就可以用其它的程序來進行壓縮。

1.命令格式:

tar[必要參數][選擇參數][文件]?

2.命令功能:

用來壓縮和解壓文件。tar本身不具有壓縮功能。他是調用壓縮功能實現的?

3.命令參數:

必要參數有如下:

-A?新增壓縮文件到已存在的壓縮

-B?設置區塊大小

-c?建立新的壓縮文件

-d?記錄文件的差別

-r?添加文件到已經壓縮的文件

-u?添加改變了和現有的文件到已經存在的壓縮文件

-x?從壓縮的文件中提取文件

-t?顯示壓縮文件的內容

-z?支持gzip解壓文件

-j?支持bzip2解壓文件

-Z?支持compress解壓文件

-v?顯示操作過程

-l?文件系統邊界設置

-k?保留原有文件不覆蓋

-m?保留文件不被覆蓋

-W?確認壓縮文件的正確性

?

可選參數如下:

-b?設置區塊數目

-C?切換到指定目錄

-f?指定壓縮文件

--help?顯示幫助信息

--version?顯示版本信息

?

4.常見解壓/壓縮命令

?

tar?
解包:tar?xvf?FileName.tar
打包:tar?cvf?FileName.tar?DirName
(注:tar是打包,不是壓縮!)


.gz
解壓1:gunzip?FileName.gz
解壓2:gzip?-d?FileName.gz
壓縮:gzip?FileName

.tar.gz?和?.tgz
解壓:tar?zxvf?FileName.tar.gz
壓縮:tar?zcvf?FileName.tar.gz?DirName

.bz2
解壓1:bzip2?-d?FileName.bz2
解壓2:bunzip2?FileName.bz2
壓縮:?bzip2?-z?FileName

.tar.bz2
解壓:tar?jxvf?FileName.tar.bz2
壓縮:tar?jcvf?FileName.tar.bz2?DirName

.bz
解壓1:bzip2?-d?FileName.bz
解壓2:bunzip2?FileName.bz
壓縮:未知

.tar.bz
解壓:tar?jxvf?FileName.tar.bz
壓縮:未知

.Z
解壓:uncompress?FileName.Z
壓縮:compress?FileName

.tar.Z
解壓:tar?Zxvf?FileName.tar.Z
壓縮:tar?Zcvf?FileName.tar.Z?DirName

.zip
解壓:unzip?FileName.zip
壓縮:zip?FileName.zip?DirName

.rar
解壓:rar?x?FileName.rar
壓縮:rar?a?FileName.rar?DirName?

?

5.使用實例

實例1:將文件全部打包成tar包

命令:

tar?-cvf?log.tar?log2012.log

tar?-zcvf?log.tar.gz?log2012.log

tar?-jcvf?log.tar.bz2?log2012.log

輸出:

[root@localhost?test]#?ls?-al?log2012.log

---xrw-r--?1?root?root?302108?11-13?06:03?log2012.log

[root@localhost?test]#?tar?-cvf?log.tar?log2012.log?

log2012.log

[root@localhost?test]#?tar?-zcvf?log.tar.gz?log2012.log

log2012.log

[root@localhost?test]#?tar?-jcvf?log.tar.bz2?log2012.log?

log2012.log

[root@localhost?test]#?ls?-al?*.tar*

-rw-r--r--?1?root?root?307200?11-29?17:54?log.tar

-rw-r--r--?1?root?root???1413?11-29?17:55?log.tar.bz2

-rw-r--r--?1?root?root???1413?11-29?17:54?log.tar.gz

說明:

tar?-cvf?log.tar?log2012.log????僅打包,不壓縮!?

tar?-zcvf?log.tar.gz?log2012.log???打包后,以?gzip?壓縮?

tar?-zcvf?log.tar.bz2?log2012.log??打包后,以?bzip2?壓縮?

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

?

實例2:查閱上述?tar包內有哪些文件

命令:

tar?-ztvf?log.tar.gz

輸出:

[root@localhost?test]#?tar?-ztvf?log.tar.gz

---xrw-r--?root/root????302108?2012-11-13?06:03:25?log2012.log

說明:

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

?

實例3:將tar?包解壓縮

命令:

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

輸出:

[root@localhost?test3]#?ll

總計?0[root@localhost?test3]#?tar?-zxvf?/opt/soft/test/log.tar.gz

log2012.log

[root@localhost?test3]#?ls

log2012.log

[root@localhost?test3]#

?

說明:

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

?

實例4:只將?/tar?內的?部分文件解壓出來

命令:

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

輸出:

[root@localhost?test]#?tar?-zcvf?log30.tar.gz?log2012.log?log2013.log?

log2012.log

log2013.log

[root@localhost?test]#?ls?-al?log30.tar.gz?

-rw-r--r--?1?root?root?1512?11-30?08:19?log30.tar.gz

[root@localhost?test]#?tar?-zxvf?log30.tar.gz?log2013.log

log2013.log

[root@localhost?test]#?ll

-rw-r--r--?1?root?root???1512?11-30?08:19?log30.tar.gz

[root@localhost?test]#?cd?test3

[root@localhost?test3]#?tar?-zxvf?/opt/soft/test/log30.tar.gz?log2013.log

log2013.log

[root@localhost?test3]#?ll

總計?4

-rw-r--r--?1?root?root?61?11-13?06:03?log2013.log

[root@localhost?test3]#

說明:

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

?

實例5:文件備份下來,并且保存其權限

命令:

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

輸出:

[root@localhost?test]#?ll

總計?0

-rw-r--r--?1?root?root??????0?11-13?06:03?log2014.log

-rw-r--r--?1?root?root??????0?11-13?06:06?log2015.log

-rw-r--r--?1?root?root??????0?11-16?14:41?log2016.log

[root@localhost?test]#?tar?-zcvpf?log31.tar.gz?log2014.log?log2015.log?log2016.log?

log2014.log

log2015.log

log2016.log

[root@localhost?test]#?cd?test6

[root@localhost?test6]#?ll

[root@localhost?test6]#?tar?-zxvpf?/opt/soft/test/log31.tar.gz?

log2014.log

log2015.log

log2016.log

[root@localhost?test6]#?ll

總計?0

-rw-r--r--?1?root?root?0?11-13?06:03?log2014.log

-rw-r--r--?1?root?root?0?11-13?06:06?log2015.log

-rw-r--r--?1?root?root?0?11-16?14:41?log2016.log

[root@localhost?test6]#

說明:

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

實例6:在?文件夾當中,比某個日期新的文件才備份

命令:

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

輸出:

[root@localhost?soft]#?tar?-N?"2012/11/13"?-zcvf?log17.tar.gz?test

tar:?Treating?date?`2012/11/13'?as?2012-11-13?00:00:00?+?0?nanoseconds

test/test/log31.tar.gz

test/log2014.log

test/linklog.log

test/log2015.log

test/log2013.log

test/log2012.log

test/log2017.log

test/log2016.log

test/log30.tar.gz

test/log.tar

test/log.tar.bz2

test/log.tar.gz

說明:

?

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

命令:

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

輸出:

[root@localhost?test]#?tree?scf

scf

|--?bin

|--?doc

|--?lib

`--?service

??? ?`--?deploy

??????? ? |--?info

??????? ? `--?product

?

7?directories,?0?files

[root@localhost?test]#?tar?--exclude?scf/service?-zcvf?scf.tar.gz?scf/*?

scf/bin/

scf/doc/

scf/lib/

[root@localhost?test]#

轉載于:https://www.cnblogs.com/is-Tina/p/8722084.html

總結

以上是生活随笔為你收集整理的tar命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。