红菊直播官方版-红菊直播免费版app下载-红菊直播永久免费版下载

網(wǎng)站首頁(yè)
手機(jī)版

tar、gzip、zip、jar是什么,怎么查看?(zip查看是什么意思)

更新時(shí)間:2024-03-31 05:53作者:小樂(lè)

原文:編碼日記(微信公眾號(hào)ID:codelogs),歡迎分享,轉(zhuǎn)載請(qǐng)保留出處。

簡(jiǎn)介如果你是一個(gè)后端程序員,我想你一定見(jiàn)過(guò)后綴為*.tar.gz、*.zip、*.jar的文件。這些都是壓縮文件。這些文件是如何生成的?主要區(qū)別是什么?本文將帶您了解這些文件和配套的操作命令,以及它們的常用場(chǎng)景。

tar 和gzip Linux 上最常見(jiàn)的壓縮文件是*.tar.gz。各種開(kāi)源軟件經(jīng)常以這種格式發(fā)布源代碼或程序,所以作為后端開(kāi)發(fā)人員,有必要了解它。

首先可以發(fā)現(xiàn)這個(gè)文件有兩個(gè)后綴,分別是.tar和.gz。這個(gè)名字是有原因的,因?yàn)樗闹谱鬟^(guò)程分為兩部分,如下:

使用tar將目錄打包成單個(gè).tar文件# 將applogs目錄打包成applogs.tar文件# 其中-c表示打包,-f指定打包文件名$ tar -cf applogs.tar applogs/# 可以找到即打包文件的大小與目錄占用的大小相似,因?yàn)閠ar只是將目錄中的文件組合成單個(gè)文件,并且默認(rèn)不壓縮$ du -sh applogs/applogs.tar177M applogs/175M applogs.tar 使用gzip將.tar文件壓縮成.gz文件# 使用gzip壓縮會(huì)生成applogs.tar.gz文件$ gzip -k applogs.tar# 可以發(fā)現(xiàn)壓縮后文件大小明顯變小$ du -sh applogs.tar applogs.tar.gz175M applogs.tar8.8M applogs.tar.gz 這是*.tar.gz文件的制作過(guò)程。事實(shí)上,使用tar 命令可以將這兩步簡(jiǎn)化為一步,如下:

# 打包壓縮,其中-z表示打包然后使用gzip壓縮$ tar -czf applogs.tar.gz applogs/# 解壓到當(dāng)前目錄$ tar -xzf applogs.tar.gz -C ./壓縮日志文件In另外,由于日志文件的內(nèi)容一般具有較高的重復(fù)率,這導(dǎo)致Linux經(jīng)常對(duì)后端系統(tǒng)產(chǎn)生的歷史日志文件進(jìn)行壓縮和存儲(chǔ),這樣可以顯著減少磁盤(pán)空間的使用。

基于這種情況,Linux上誕生了很多查看壓縮日志文件的命令,如zcat、zgrep、zless等,如下:

# 自動(dòng)解壓文件并輸出文件內(nèi)容$ zcat applogs.tar.gz # 自動(dòng)解壓文件并在其中搜索。用法類(lèi)似于grep $ zgrep -a 'error' applogs.tar.gz 這比先愚蠢地解壓要好。文件中,在文件內(nèi)搜索效率更高。

tar與其他壓縮算法另外,除了gzip之外,tar還可以與其他壓縮算法配合使用,例如bzip2、xz等,如下:

-j, --bzip2 通過(guò)bzip2 過(guò)濾存檔-J, --xz 通過(guò)xz 過(guò)濾存檔--lzip 通過(guò)lzip 過(guò)濾存檔--lzma 通過(guò)xz 過(guò)濾存檔--lzop 通過(guò)lzop 過(guò)濾存檔-z, - -gzip, --gunzip, --ungzip 通過(guò)gzip 過(guò)濾存檔--zstd 通過(guò)zstd 過(guò)濾存檔-Z, --compress, --uncompress 通過(guò)compresszip 過(guò)濾存檔,jarzip 也是常見(jiàn)的壓縮文件格式。后綴為*.zip。與上面的tar和gzip不同,zip集成了打包和壓縮兩個(gè)過(guò)程。 Linux下對(duì)應(yīng)的操作命令是zip和unzip,如下:

# 創(chuàng)建zip壓縮文件$ zip -r applogs.zip applogs/# 查看zip壓縮文件中有哪些文件$ unzip -l applogs.zipArchive: applogs.zip Length Date Time Name--------- --- - ------ ----- ---- 0 2022-09-17 12:58 applogs/99166 2022-09-16 18:20 applogs/demo.2022-09-16.0.log 13177092 2022-09-17 13:37 applogs /demo.2022-09-17.0.log 948 2022-08-09 15:08 applogs/demo.log.----------------203039002140 files#解壓zip文件, -d 指定解壓目錄$ unzip applogs.zip -d ./與gzip類(lèi)似,zip也自帶了一些方便特定場(chǎng)景的命令工具,如zipinfo、zipgrep等,如下:

# zipinfo 查看zip文件包含哪些文件$ zipinfo applogs.zipArchive: applogs.zip壓縮文件大?。?9573195字節(jié),條目數(shù): 140drwxrwxrwx 3.0 unx 0 bx stor 22-Sep-17 12:58 applogs/-rwxrwxrwx 3.0 unx 99166 tx defN 9 月22 日16 18:20 applogs/demo.2022-09-16.0.log-rwxrwxrwx 3.0 unx 13177092 tx defN 22-Sep-17 13:37 applogs/demo.2022-09-17.0.log-rwxrwxrwx 3.0 unx 948 tx defN 2009 年8 月22 日15:08 applogs /demo.log.140 個(gè)文件,未壓縮203039002 字節(jié),壓縮9546235 字節(jié): 95.3%# zipgrep 自動(dòng)解壓縮文件并在其中搜索。用法類(lèi)似grep $ zipgrep 'error' applogs.zip 查看jar文件目前大多數(shù)Java項(xiàng)目都是基于spingboot的。眾所周知,spingboot會(huì)將項(xiàng)目打包成單個(gè)jar文件進(jìn)行部署,但實(shí)際上,jar文件本質(zhì)上是zip格式。與zip文件相比,它只多了一個(gè)META-INF/MANIFEST.MF文件。如下:

$ unzip -p app.jar META-INF/MANIFEST.MFManifest-Version: 1.0Spring-Boot-Classpath-Index: BOOT-INF/classpath.idxImplementation-Version: 0.0.1-SNAPSHOTSpring-Boot-Layers-Index: BOOT-INF/層。 idxStart-Class: com.example.demo.DemoApplicationSpring-Boot-Classes: BOOT-INF/classes/Spring-Boot-Lib: BOOT-INF/lib/Build-Jdk-Spec: 1.8Spring-Boot-Version: 2.4.0Created-By: Maven Jar Plu gin 3.2.0Main-Class: org.springframework.boot.loader.JarLauncher 如上所示,MANIFEST.MF文件指定了jar包的Main-Class,這樣當(dāng)執(zhí)行java -jar app.jar時(shí),java就會(huì)知道是哪個(gè)類(lèi)來(lái)查找main.方法,而spingboot打包的jar無(wú)非是將啟動(dòng)類(lèi)替換成自己的。

很多時(shí)候,我們需要確認(rèn)jar文件的內(nèi)容。比如我想在app.jar中查看spingboot內(nèi)嵌的tomcat的線(xiàn)程池配置大小。您可以通過(guò)如下方式查看:

$ zipgrep 'max-thread' app.jar BOOT-INF/classes/application.yml: max-threads: 500 這個(gè)比jdk自帶的jar命令方便多了。如果你是一名Java開(kāi)發(fā)的學(xué)生,這個(gè)命令應(yīng)該成為你的開(kāi)發(fā)工具箱中的其中之一。

總結(jié)ok,壓縮文件和命令都介紹得差不多了,我們簡(jiǎn)單總結(jié)一下:

tar、gzip:用于打包或解壓縮*.tar.gz 文件的命令。盡管它們是兩個(gè)命令,但它們幾乎總是一起使用。 zip、unzip:用于打包或解壓縮*.zip 文件的命令。值得注意的是,它們還可以處理*.jar文件,并且在搜索場(chǎng)景中,使用zipgrep更方便。 less命令實(shí)際上可以直接打開(kāi)這些壓縮文件。甚至可以打開(kāi)png、pdf等廣義的壓縮文件!

另外,Linux平臺(tái)上其實(shí)還有一些其他的壓縮命令,比如bzip2、xz、7z、rar等,我就不一一介紹了。如果有興趣可以查看Linux man文檔。

為您推薦

分享:美國(guó)郵政編碼身世解密

聽(tīng)說(shuō)大家對(duì)于美國(guó)郵政編碼有疑問(wèn)?小U今天就來(lái)帶大家深度了解一下美國(guó)郵編,認(rèn)識(shí)它,熟悉它,最后攻克它!既然說(shuō)到郵政編碼,那就得先來(lái)看一下郵政編碼的含義。郵政編碼(ZIP CODE),又稱(chēng)郵遞區(qū)號(hào),是一個(gè)國(guó)家或地區(qū)為實(shí)現(xiàn)郵件分揀自動(dòng)化和郵政網(wǎng)絡(luò)

2024-03-31 05:48

剁手無(wú)國(guó)界!52個(gè)海淘詞匯你知道幾個(gè)? 海淘的英文是什么

愛(ài)情無(wú)國(guó)界; 友誼無(wú)國(guó)界; 剁手無(wú)國(guó)界。 誰(shuí)都想要把全世界的好東西都攬?jiān)谧约簯牙铩?可是因?yàn)橐咔榈年P(guān)系,你沒(méi)法肉身出國(guó)帶貨,代購(gòu)也成了問(wèn)題。此時(shí)此刻,海淘或許是個(gè)不錯(cuò)的選擇。 但是打開(kāi)滿(mǎn)是英語(yǔ)的海淘網(wǎng)站,你知道如何找到自己心儀的商品,并且

2024-03-31 05:42

給讀者的,加拿大多倫多旅游攻略,領(lǐng)略世界上最多元化城市的風(fēng)采

多倫多是加拿大第一大城市,是加拿大文化、經(jīng)濟(jì)的發(fā)源地,也是交通要樞,兼全國(guó)制造業(yè)的心臟。在多倫多的對(duì)岸,是美國(guó)的紐約州,聞名世界的尼亞加拉大瀑布,距多倫多僅100公里。多倫多享有世界上最多元化城市的美譽(yù),包容了來(lái)自一百多個(gè)國(guó)家的移民,在大街

2024-03-31 05:37

美國(guó)旅游極簡(jiǎn)英語(yǔ)攻略

這篇攻略主要講旅行中的英語(yǔ),言簡(jiǎn)意賅,不會(huì)長(zhǎng)篇大論。出國(guó)旅游的帥哥靚妹,想必基本的一些英語(yǔ)單詞及口語(yǔ)都是會(huì)的,所以這里只講一些重要的和必備的,爭(zhēng)取用最少詞匯用最短的時(shí)間記住,然后就可以游玩一圈了。前提是不出什么幺蛾子,譬如出入境被關(guān)小黑屋、

2024-03-31 05:31

爾灣連續(xù)16年蟬聯(lián)最安全城市!美國(guó)百大房?jī)r(jià)最貴郵編三成在南加州

自 2005 年以來(lái),爾灣(Irvine)一直憑借著自己的優(yōu)秀的城市治理,穩(wěn)居美國(guó)同規(guī)模城市中最安全的城市。根據(jù)美國(guó)聯(lián)邦調(diào)查局FBI的2020 年的統(tǒng)計(jì)數(shù)據(jù)顯示,爾灣的人均暴力犯罪率是全美人口 25 萬(wàn)或以上的城市中最低的,從而再次蟬聯(lián)桂冠

2024-03-31 05:24

如何在美國(guó)使用自助加油站?

作為一個(gè)汽車(chē)之國(guó),在美國(guó)開(kāi)車(chē)少不了和加油站打交道。美國(guó)絕大多數(shù)地方都是自助加油,很多時(shí)候,看著滿(mǎn)眼的數(shù)字各種按鈕,肯定也會(huì)比較發(fā)蒙。那么今天就為大家?guī)?lái)美國(guó)加油站加油攻略,看看在美國(guó)如何自助加油。在城市之間的高速公路上,加油站一般都會(huì)有很清

2024-03-31 05:16

加載中...