国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

在 Linux 上壓縮文件的 5 種方法

發布時間:2020-5-7 15:28    發布者:嵌入式人生17
Linux 上壓縮文件的 5 種方法
tar
tar 命令不是專門的壓縮命令。它通常用于將多個文件拉入一個單個的文件中,以便容易地傳輸到另一個系統,或者將文件作為一個相關的組進行備份。它也提供壓縮的功能,這就很有意義了,附加一個 z 壓縮選項能夠實現壓縮文件。
當使用 z 選項為 tar 命令附加壓縮過程時,tar 使用 gzip 來進行壓縮。
就像壓縮一組文件一樣,你可以使用 tar 來壓縮單個文件,盡管這種操作與直接使用 gzip 相比沒有特別的優勢。要使用 tar 這樣做,只需要使用 tar cfz newtarfile filename 命令來標識要壓縮的文件,就像標識一組文件一樣,像這樣:
1. $ tar cfz bigfile.tgz bigfile
2.             ^            ^
3.             |            |
4.             +- 新的文件  +- 將被壓縮的文件
5.
6. $ ls -l bigfile*
7. -rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile
8. -rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz
注意,文件的大小顯著減少了。
如果你愿意,你可以使用 tar.gz 擴展名,這可能會使文件的特征更加明顯,但是大多數的 Linux 用戶將很可能會意識到與 tgz 的意思是一樣的 – tar 和 gz 的組合來顯示文件是一個壓縮的 tar 文件。在壓縮完成后,你將同時得到原始文件和壓縮文件。
要將很多文件收集在一起并在一個命令中壓縮出 “tar ball”,使用相同的語法,但要指定要包含的文件為一組,而不是單個文件。這里有一個示例:
1. $ tar cfz bin.tgz bin/*
2.           ^         ^
3.           |         +-- 將被包含的文件
4.           + 新的文件
zip
zip 命令創建一個壓縮文件,與此同時保留原始文件的完整性。語法像使用 tar 一樣簡單,只是你必需記住,你的原始文件名稱應該是命令行上的最后一個參數。
1. $ zip ./bigfile.zip bigfile
2. updating: bigfile (deflated 79%)
3. $ ls -l bigfile bigfile.zip
4. -rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile
5. -rw-rw-r-- 1 shs shs  21606889 Apr 16 11:19 bigfile.zip
gzip
gzip 命令非常容易使用。你只需要鍵入 gzip,緊隨其后的是你想要壓縮的文件名稱。不像上述描述的命令,gzip 將“就地”加密文件。換句話說,原始文件將被加密文件替換。
1. $ gzip bigfile
2. $ ls -l bigfile*
3. -rw-rw-r-- 1 shs shs  21606751 Apr 15 17:57 bigfile.gz
bzip2
像使用 gzip 命令一樣,bzip2 將在你選擇的文件“就地”壓縮,不留下原始文件。
1. $ bzip bigfile
2. $ ls -l bigfile*
3. -rw-rw-r-- 1 shs shs  18115234 Apr 15 17:57 bigfile.bz2
xz
xz 是壓縮命令團隊中的一個相對較新的成員,在壓縮文件的能力方面,它是一個領跑者。像先前的兩個命令一樣,你只需要將文件名稱提供給命令。再強調一次,原始文件被就地壓縮。
1. $ xz bigfile
2. $ ls -l bigfile*
3. -rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz
對于大文件來說,你可能會注意到 xz 將比其它的壓縮命令花費更多的運行時間,但是壓縮的結果卻是非常令人贊嘆的。
對比
大多數人都聽說過“大小不是一切”。所以,讓我們比較一下文件大小以及一些當你計劃如何壓縮文件時的問題。
下面顯示的統計數據都與壓縮單個文件相關,在上面顯示的示例中使用 bigfile。這個文件是一個大的且相當隨機的文本文件。壓縮率在一定程度上取決于文件的內容。
大小減縮率
當比較時,上面顯示的各種壓縮命產生下面的結果。百分比表示壓縮文件與原始文件的比較效果。
1. -rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile
2. ------------------------------------------------------
3. -rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2    ~17%
4. -rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz     ~21%
5. -rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz    ~21%
6. -rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz     ~13%
7. -rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip    ~21%
xz 命令獲勝,最終只有壓縮文件 13% 的大小,但是所有這些壓縮命令都相當顯著地減少原始文件的大小。
是否替換原始文件
bzip2gzipxz 命令都用壓縮文件替換原始文件。tarzip 命令不替換。
運行時間
xz 命令似乎比其它命令需要花費更多的時間來加密文件。對于 bigfile 來說,大概的時間是:
1. 命令      運行時間
2. tar       4.9
3. zip       5.2
4. bzip2    22.8
5. gzip      4.8
6. xz       50.4
解壓縮文件很可能比壓縮時間要短得多。
文件權限
不管你對壓縮文件設置什么權限,壓縮文件的權限將基于你的 umask 設置,但 bzip2 除外,它保留了原始文件的權限。
Windows 的兼容性
zip 命令創建的文件可以在 Windows 系統以及 Linux 和其他 Unix 系統上使用(即解壓),而無需安裝其他工具,無論這些工具可能是可用還是不可用的。
解壓縮文件
解壓文件的命令與壓縮文件的命令類似。在我們運行上述壓縮命令后,這些命令用于解壓縮 bigfile
◈ tar: tar xf bigfile.tgz◈ zip: unzip bigfile.zip◈ gzip: gunzip bigfile.gz◈ bzip2: bunzip2 bigfile.gz2◈ xz: xz -d bigfile.xzunxz bigfile.x
自己運行壓縮對比
如果你想自己運行一些測試,抓取一個大的且可以替換的文件,并使用上面顯示的每個命令來壓縮它 —— 最好使用一個新的子目錄。你可能需要先安裝 xz,如果你想在測試中包含它的話。這個腳本可能更容易地進行壓縮,但是可能需要花費幾分鐘完成。
1. #!/bin/bash
2.
3. # 詢問用戶文件名稱
4. echo -n "filename> "
5. read filename
6.
7. # 你需要這個,因為一些命令將替換原始文件
8. cp $filename $filename-2
9.
10. # 先清理(以免先前的結果仍然可用)
11. rm $filename.*
12.
13. tar cvfz ./$filename.tgz $filename > /dev/null
14. zip $filename.zip $filename > /dev/null
15. bzip2 $filename
16. # 恢復原始文件
17. cp $filename-2 $filename
18. gzip $filename
19. # 恢復原始文件
20. cp $filename-2 $filename
21. xz $filename
22.
23. # 顯示結果
24. ls -l $filename.*
25.
26. # 替換原始文件
27. mv $filename-2 $filename


本文地址:http://www.4huy16.com/thread-587675-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 電動兩輪車設計生態系統
  • Microchip第22屆中國技術精英年會——采訪篇
  • 常見深度學習模型介紹及應用培訓教程
  • Microchip第22屆中國技術精英年會上海首站開幕
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表