linux文件分別打包命令,Linux文件打包命令

15.1 gzip

gzip(1)

是GNU的壓縮程序。它只對單個文件進行壓縮。基本用法如下:

$ gzip filename

程序執行以后,文件名會變成filename.gz,而且一般情況下大小會比原文件要小。注意,程序并不新建一個新的文件filename.gz,

而是將filename變成filename.gz。一般來說,文本文件壓縮率會比較高。而那些jpeg圖像,mp3等類似文件的壓縮率就沒有那么好了,

因為它們本來就已經被壓縮過了的。這個基本用法考慮了壓縮時間和壓縮后文件尺寸的平衡問題(譯者注:如果要使壓縮后的文件更小,就需要用到更多的時間)。

要得到最小文件大小(最大壓縮),可以使用如下用法:

$ gzip -9 filename

這樣就可以得到gzip能夠壓縮的最小文件尺寸,但是需要更長的壓縮時間。上面的數字越小,壓縮就越快,相反壓縮率也就越小。

將gzip壓縮的文件解壓縮,有兩個命令可以使用,但實際上它們是同一個程序。只要壓縮文件的后綴名被gzip程序認到,它就可以解壓縮。后綴名可以是:.gz,

-gz, .z, -z, .Z 和 ?Z。可以使用的第一個命令是:

$ gunzip filename.gz

使用上面的命令后,filename.gz會被解壓縮并去掉后綴名.gz變成filename。gunzip

實際上是gzip程序的一部分,它跟gzip ?d 這個命令有等同效果。但是我們使用的時候,經常使用gunzip,

因為這個用法似乎更酷些。: ^ )

15.2 bzip2

bzip2(1)是 Slackware

Linux里面壓縮程序的另一個選擇。它的壓縮算法不同于gzip。與gzip

相比有其優點,也有一些缺點。bzip2的主要優點在于它壓縮后文件的尺寸,對于相同文件,bzip2

壓縮后的尺寸幾乎總是小于gzip的壓縮結果。有些時候,這個差距會相當大。這個優點對于使用小貓下載文件的用戶來說表現得尤為突出。需要提醒的是,當在

一些公共ftp

服務器上下載文件時,在.gz和.bz2文件中盡量選擇.bz2文件是一種基本的網絡禮節,因為這樣可以減少服務器的負擔以給更多人服務。

bzip2的缺點在于,它占用的CPU的使用率會比gzip更多。這就是說,壓縮同一個文件,bzip2要比gzip使用更長的時間,占用更多的CPU資源。所以,當你在兩者之中考慮選用哪種壓縮程序的時候,需要衡量的是速度和壓縮后的文件尺寸哪個對你來說更重要些。

bzip2的使用方法和gzip是一樣的,所以我們不再花時間討論了。像gunzip一樣,bunzip2的效果等同于bzip2

?d。與gzip最大的不同是bzip2使用后綴名.bz2.

$ bzip2 filename

$ bunzip2 filename.bz2

$ gunzip -9 filename

15.3 tar

tar(1)是一個GNU的磁帶歸檔程序。它可以將幾個文件或者目錄打包壓縮成一個文件。這個特點讓我們可以壓縮整個目錄樹,而單使用gzip和

bzip2是無法做到的。tar有很多命令行參數,你可以在手冊頁找到它們。在這一節里,我們只是討論一下那些經常用到的tar的用法。

tar

最常用的用法是將我們從網站或者ftp上下載的文件解壓縮然后在解包。a.tar.gz是我們經常看到的文件名格式,這就是我們通常說的

"tarball",它是先把一些文件用tar打包,然后在用gzip壓縮。你也有可能會看到名為a.tar.Z的文件,這也是同樣的做法,但是你一般只

會在比較老的Unix 系統里面遇到。

另外,你也會在另外一些地方看到如a.tar.bz2這樣文件。Kernel源文件就是用這種格式發布的,為的是可以讓文件更小,便于下載。你可能已經猜到,它就是先將一些文件用tar打包,然后再用bzip2壓縮。

我們可以將上述格式的文件用tar加一些命令行參數進行解包。-z參數表示在首先運行gunzip將文件解壓縮。將一個tarball解包的最常用的用法是:

$ tar -xvzf filename.tar.gz

這里有不少的參數,那么它們各自有什么意思呢?

-x表示提取文件。這是一個非常重要的參數,因為它告訴tar對輸入的文件具體怎么處理。在這里,我們要將打包的文件分離還原成打包前的狀態。

-v表示詳述。加入這個參數讓程序將解包出來的每一個文件列出來。如果覺得列出來太煩了,你完全可以把這個參數去掉來關閉這個功能。相反,如果你需要每個解包文件更詳細的信息,則可以使用-vv參數。

-z是告訴tar先運行gunzip將文件解壓縮。

-f是告訴tar在命令行輸入的下一個串字符是需要處理的文件。

上面這個命令也可以用一些其他形式的寫法。在比較老的系統里面由于缺少新版本的GNU tar程序,你可能會看到它是寫成這樣的:

$ gunzip filename.tar.gz | tar -xvf

-

這行命令先把文件解壓縮,然后把解壓的文件對輸出到tar程序。gzip可以把其處理完的數據輸到標準輸出。這里就是把gzip解壓縮的文件作為標準輸出,然后由管道把文件送到tar程序進行解包。最后的

"-"表示處理標準輸入。它將解包后的文件寫入磁盤。

還有一種寫法是將第一種命令格式的短劃線去掉,像這樣:

$ tar xvzf filename.tar.gz

你也可能會碰到bzip2壓縮的打包文件。在Slackware

Linux所帶的tar程序版本 可以像gzip壓縮的打包文件一樣,只是要把參數-z用-j代替:

$ tar -xvjf filename.tar.bz2

這里需要注意的是,tar會把解包的文件放到當前目錄。所以如果要把一個放在/tmp目錄文件解壓縮到你的家目錄的話,這里有一些做法可供選擇:

選擇一,把文件拷貝到家目錄,然后解包

選擇二,指定需要解包文件的路徑

選擇三,用-C 參數指定解包后存放文件的路徑

$ cd $HOME

$ cp /tmp/filename.tar.gz

$ tar -xvzf filename.tar.gz

$ cd $HOME

$ tar -xvzf

/tmp/finename.tar.gz

$ cd /

$ tar -xvzf /tmp/filename.tar.gz -C

$HOME

上面所有的命令都是等效的。每一種做法都是把文件解包到你的家目錄,源文件則留在原來的地方。

上面講了那么多用tar解包的命令,現在讓我們來看看tar是如何來打包的吧。

在大多數情況下,只需要用參數"-c"代替參數"-x"就可以了:

$ tar -cvzf filename.tar.gz .

在這行命令里面,參數-c是告訴tar來建立一個打包文件;而參數-z是將打包的文件通過gzip程序進行壓縮。filename.tar.gz

是你將要建立的文件名。(譯者添加:命令行最后的"."是告訴tar將當前目錄下的所有文件/文件夾打包)

參數"-f"不是必需的,但是通常來說加上會是一個好主意。如果不加,tar會將數據寫到標準輸出,這就需要管道將tar輸出到另外一個程序,像這樣:

$ tar -cv filename.tar . | gpg

--encrypt

這行命令把當前目錄下的所有文件打包建立一個沒有被壓縮的tar歸檔文件,通過管道輸出到gpg程序進行加密,讓不知道密鑰的人無法讀到文件內容。

15.4 zip

最后,討論一下處理zip文件的兩個程序。zip文件在Windows世界里面是極為常用的,所以Linux也有相應的程序來處理它們。zip文件的壓縮程序叫做zip(1),解壓縮程序叫做unzip(1).

$ zip foo *

這行命令會建立一個包涵當前目錄所有文件的的zip文件

foo.zip。zip會自動將

.zip后綴名加上,所以我們不需要在命令中加上。你也可以加上一個參數-r使zip將當前目錄下的所有文件夾目錄也加在zip文件中:

$ zip -r foo *

解壓縮文件很簡單,像這樣:

$ unzip foo.zip

這樣會解壓縮foo.zip里面的所有文件和文件夾

zip程序還有一些高級應用參數,包括建立自解壓包,壓縮是保留源文件,調節壓縮文件的尺寸等等,在這里就不一一贅述了。如果想了解更多,請查看手冊頁。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371543.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371543.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371543.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Play 2.0框架和XA交易

XA事務非常有用,而且開箱即用,今天的Play 2.0不支持它們。 在這里,我展示了如何添加該支持: 首先,介紹一些XA有用的示例: –如果您使用來自兩個不同persistence.xml的實體,則JPA使用兩個物理連…

java代碼注釋規范

java代碼注釋規范 一、規范存在的意義 應用編碼規范對于軟件本身和軟件開發人員而言尤為重要,有以下幾個原因:1、好的編碼規范可以盡可能的減少一個軟件的維護成本 , 并且幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開…

win10 hyper-v 虛擬機ping不通宿主機問題

在Windows10 Hyper-V 中安裝 Linux (Centos6.9)虛擬機無法 ping 通宿主機 這種情況下關閉 Windows 防火墻就能ping通了,當然關閉防火墻不安全。所以需要 做以下步驟: 控制面板-》系統和安全-》Windows防火墻-》高級設置-》入站規則 啟用下圖被紅框選中的兩個選…

linux方法參數,Linux的sysctl?命令?參數

Linux內核通過/proc虛擬文件系統向用戶導出內核信息,用戶也可以通過/proc文件系統或通過sysctl命令動態配置內核。比如,如果我們想啟動NAT,除了加載模塊、配置防火墻外,還需要啟動內核轉發功能。我們有三種方法:1. 直接…

Java枚舉:您擁有優雅,優雅和力量,這就是我所愛!

當Java 8即將面世時,您確定您對Java 5中引入的枚舉很了解嗎? Java枚舉仍然被低估了,很可惜,因為它們比您想象的要有用,它們不僅僅用于通常的枚舉常量! Java枚舉是多態的 Java枚舉是可以包含行為甚至數據的…

C#刪除和清空文件夾的程序

/// <summary>/// 清空指定的文件夾&#xff0c;但不刪除文件夾/// </summary>/// <param name"dir"></param>private void DeleteFolder(string dir){foreach (string d in Directory.GetFileSystemEntries(dir)){if (File.Exists(d)){try{…

2)網頁請求順序

&#xff08;1&#xff09;分析瀏覽器訪問一個網頁的完整流程邏輯過程&#xff1a;http&#xff1a;//www.abc.com/def/ 轉載于:https://www.cnblogs.com/xiaoyoucai/p/7306246.html

JavaOne 2012:非阻塞數據結構如何工作?

當我查看今天的日程安排時&#xff0c;我感到有些驚訝&#xff0c;并指出我目前計劃今天參加的所有會議都在希爾頓舉行。 當我意識到JavaOne演示文稿中大約有一半是在希爾頓酒店中并且似乎按路線大致定位時&#xff0c;這變得有些不足為奇了。 Tobias Lindaaker &#xff08; 新…

c語言箭頭指針的作用,C語言中,結構體成員變量的點和箭頭

C語言中&#xff0c;調用成員變量用點還是用箭頭&#xff0c;取決于當前的ID是指針還是結構體本身。如&#xff1a;typedef struct {float height;float weight;} Person;int main(int argc, char *argv[]) {Person jiushen;Person *lengleng (Person *)malloc(sizeof(Person)…

JavaOne 2012:調查JVM水晶球

我回到了希爾頓的A / B廣場參加星期一的第四屆會議&#xff0c;但首先去了希爾頓的頂層收拾午餐。 我每年都在JavaOne的第一天被提醒&#xff0c;涉及到每個人的第一天的午餐獲取過程令人驚訝地令人沮喪。 我知道我在JavaOne的第一年的經歷使我有些困惑&#xff0c;因為我不確定…

測試遇到的問題

多人合作測試 多人員合作測試&#xff0c;應盡量保證測試平臺統一&#xff0c;處理流程統一&#xff0c;相互之間保持實時溝通。問題的處理進度應保證所負責的所有測試人員第一時間實時更新。 多人測試應做到2人或以上進行交叉測試。 轉載于:https://www.cnblogs.com/liuliu-wo…

Jquery Memo

jQuery選擇器 $( "#id" ) $( ".class" )$( "element" )全選擇器&#xff08;*選擇器&#xff09; * {padding: 0; margin: 0;}//子選擇器 //$(div > p) 選擇所有div元素里面的子元素P//后代選擇器 //$(div p) 選擇所有div元素…

c#語言輸出字符串長度,C#統計字符長度(漢字占2個字符)

在C#編程過程中&#xff0c;通過String類的Length屬性可以獲取對應字符串的長度&#xff0c;但是細心的讀者可能注意到了&#xff0c;String類的Length屬性返回的是字符串中Char對象的個數&#xff0c;也就是說&#xff0c;一個漢字的長度為1&#xff0c;對此&#xff0c;MSDN的…

使用JMSTester對JMS層進行基準測試

對于我去過的大多數客戶端&#xff0c;使用ActiveMQ擴展JMS消息傳遞層是一個優先事項。 有多種方法可以實現這一目標&#xff0c;但毫無疑問&#xff0c;創建基準測試并在實際硬件上分析架構&#xff08;或者正如我的同事Gary Tully所說的“詢問機器”&#xff09;是第一步。 但…

Js引擎解析執行 閱讀筆記

Js引擎解析執行 閱讀筆記 一篇閱讀筆記http://km.oa.com/group/2178/articles/show/145691?kmrefsearch&from_page1&no1 早期:遍歷語法樹 Js引擎最早使用的是遍歷語法樹方式 &#xff08;syntax tree walker&#xff09; 分為兩步 詞法分析語法分析詞法分析 i a b *…

紅外線遙控c語言程序,紅外遙控的C程序

紅外遙控在生產和生活中應用越來越廣泛,不同的紅外遙控芯片有不同的發碼協議,但一般都是由引導碼,系統碼,鍵碼三部分組成.引導碼是告訴接收機準備接收紅外遙控碼.系統碼是識別碼,不同的遙控芯片有不同的誤別碼,以免搞錯.遙控器上不同的按鍵有不同的鍵碼,系統碼和鍵碼都是16位碼…

Retrofit2 完全解析 探索與okhttp之間的關系

轉載請標明出處&#xff1a; http://blog.csdn.net/lmj623565791/article/details/51304204&#xff1b; 本文出自:【張鴻洋的博客】 之前寫了個okhttputils的工具類&#xff0c;然后有很多同學詢問這個工具類和retrofit什么區別&#xff0c;于是上了下官網&#xff0c;發現其底…

不變性真的意味著線程安全嗎?

我經常閱讀有關“如果對象是不可變的&#xff0c;則它是線程安全的”的文章。 實際上&#xff0c;我從未找到過一篇讓我相信不變的意味著線程安全的文章。 即使是Brian Goetz的Java Concurrency in Practice一書中關于不變性的一本書也沒有完全令我滿意。 在這本書中&#xff0…

c語言設計 數組的知識點,C語言程序設計知識點及示例.pdf

C語言程序設計知識點及示例四川大學錦江學院C語言程序設計知識點及示例知識點1&#xff1a;除了復合語句而外&#xff0c;C語言的語句都以分號結束。示例1&#xff1a;C語言的簡單語句 (非復合語句語句)必須以 結束。參考答案&#xff1a;分號知識點2&#xff1a;目標程序和可執…

移動端知識匯總

參見地址: https://github.com/jtyjty99999/mobileTech 轉載于:https://www.cnblogs.com/duanyue/p/7337789.html