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

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

tar、gzip、zip、jar是什么,怎么查看?

更新時間:2024-06-07 05:27作者:小樂

原文:Codelog日記(微信公眾號ID:codelogs),歡迎分享,轉(zhuǎn)載請保留出處。

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

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

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

使用tar將目錄打包成單個.tar文件# 將applogs目錄打包成applogs.tar文件# 其中-c表示打包,-f指定打包文件名$ tar -cf applogs.tar applogs/# 可以找到即打包文件的大小與目錄占用的大小相似,因?yàn)閠ar只是將目錄中的文件組合成單個文件,并且默認(rèn)不壓縮$ du -sh applogs/applogs.tar177M applogs/175M applogs.tar 使用gzip將.tar文件壓縮成.gz文件# 使用gzip壓縮會生成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文件的制作過程。事實(shí)上,使用tar 命令可以將這兩步簡化為一步,如下:

# 打包壓縮,其中-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)常對后端系統(tǒng)產(chǎn)生的歷史日志文件進(jìn)行壓縮和存儲,這樣可以顯著減少磁盤空間的使用。

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

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

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

-j, --bzip2 通過bzip2 過濾存檔-J, --xz 通過xz 過濾存檔--lzip 通過lzip 過濾存檔--lzma 通過xz 過濾存檔--lzop 通過lzop 過濾存檔-z, - -gzip, --gunzip, --ungzip 通過gzip 過濾存檔--zstd 通過zstd 過濾存檔-Z, --compress, --uncompress 通過compresszip 過濾存檔,jarzip 也是常見的壓縮文件格式。后綴為*.zip。與上面的tar和gzip不同,zip集成了打包和壓縮兩個過程。 Linux下對應(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類似,zip也自帶了一些方便特定場景的命令工具,如zipinfo、zipgrep等,如下:

# zipinfo 查看zip 文件包含哪些文件$ zipinfo applogs.zipArchive: applogs.zipZip 文件大?。?9573195 字節(jié),條目數(shù): 140drwxrwxrwx 3.0 unx 0 bx stor 22-Sep-17 12:58 applogs/-rwxrwxrwx 3. 0 unx 99166 tx defN 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 9 48 t x defN 8 月22 日- 09 15:08 applogs /demo.log.140 個文件,未壓縮203039002 字節(jié),壓縮9546235 字節(jié): 95.3%# zipgrep 自動解壓縮文件并在其中搜索。用法類似grep $ zipgrep 'error' applogs.zip 查看jar文件目前大多數(shù)Java項(xiàng)目都是基于spingboot的。眾所周知,spingboot會將項(xiàng)目打包成單個jar文件進(jìn)行部署,但實(shí)際上,jar文件本質(zhì)上是zip格式。與zip文件相比,它只多了一個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 P lugin 3.2.0Main-Class: org.springframework.boot.loader.JarLauncher 如上所示,MANIFEST.MF文件指定了jar包的Main-Class,這樣當(dāng)執(zhí)行java -jar app.jar時,java就會知道是哪個類來查找main.方法,而spingboot打包的jar無非就是把啟動類替換成自己的。

很多時候,我們需要確認(rèn)jar文件的內(nèi)容。比如我想在app.jar中查看spingboot內(nèi)嵌的tomcat的線程池配置大小,可以這樣查看:

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

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

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

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

為您推薦

國學(xué)智慧 |“一畝三分地”的由來

戳音頻,有請“小聲段”↓↓人們常常用“一畝三分地”來形容個人利益,也有人用來比喻自家的一些特定的事務(wù)。那么,“一畝三分地”這一說道是怎么來的呢 可能會有人以為“一畝三分地”是指計劃經(jīng)濟(jì)時期分給農(nóng)民的自留地,也叫蔬菜地,其實(shí),不是這意思。原來

2024-06-07 05:31

“一畝三分地”,到底有多大面積?搞不清楚很容易鬧出笑話的

在我們的生活中,很多人肯定都聽過“一畝三分地”這個詞匯,它往往用來形容一個人所擁有的土地面積,或是形容某人對某事物的管轄范圍。然而“一畝三分地”究竟有多大面積呢?這個問題看似簡單,實(shí)則蘊(yùn)含著深厚的文化內(nèi)涵。下面小編就帶大家從多個角度來了解一

2024-06-07 05:30

“一畝三分地”現(xiàn)在指個人勢力范圍,為何在古代沒人敢這么說

現(xiàn)如今,我們所說的“一畝三分地”,泛指屬于自己的勢力范圍。那么,這句話在歷史上,有什么出處呢?這句話來源于古代帝王的“耤田禮”。所謂“耤田禮”,就是指帝王扶犁親耕的一種儀式。其目的是向臣民表達(dá)皇帝關(guān)心百姓生活,重視農(nóng)耕的意愿。(耤田禮)耤田

2024-06-07 05:30

一畝三分地的由來(一畝三分地是怎么來的)

一畝三分地,多用來指代個人的小圈子或勢力范圍,屬于中性稍帶貶義的詞匯。為什么是“一畝三分”,而不是“二分”、“四分”?這里還有很多來由和趣事。北京先農(nóng)壇是全國規(guī)模最大、祭祀等級最高的、保存最為完整的古代祭農(nóng)場所。明、清兩代的帝王多次御駕親臨

2024-06-07 05:29

出發(fā)!跟著民警去看大家常說的“一畝三分地”→

“守護(hù)·平安北京中軸線”系列報道·平安先農(nóng)壇篇②走,跟著民警去看大家常說的“一畝三分地”在北京南中軸線、永定門內(nèi)大街西側(cè)有著600多年歷史的先農(nóng)壇藏匿于繁華鬧市之中相比游人如織的天壇鮮為公眾所知曉這里不僅有皇家祭祀場所的莊嚴(yán)肅穆更有遠(yuǎn)離塵囂

2024-06-07 05:29

我們常說的“一畝三分地”到底是什么意思?又在哪里?

在日常生活中,我們常聽人說到“一畝三分地”這句話。不禁要問,這一畝三分地到底是是什么意思 又在哪里?其實(shí),這和明朝、清朝重視農(nóng)耕有關(guān)。一畝三分地的說法,源于明朝皇帝親自觀看大臣春季農(nóng)耕、清朝皇帝親自拉犁耕地。祭祀先農(nóng)和親耕的傳統(tǒng),可以追溯到

2024-06-07 05:28

加載中...