歡迎您光臨本站 註冊首頁

手把手教你Linux下的文件管理(二)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

我的十大IT傑出博客參賽主頁是:http://2010blog.51cto.com/1060257,請各位支持我,給我投上寶貴一票,謝謝!

隨著Linux開源系統平台的不斷發展,越來越多的開源軟體可以提供給Linux用戶使用,這樣,也是的更多的文件“吞噬”著硬碟空間.作為一種優秀的開源操作系統,如何高效地管理系統中的軟體是一個很重要的問題.Linux提供了多種方法,用戶可以根據實際情況方便地對軟體進行管理.比如,它提供了對文件打包的功能,用戶可以使用其將若干文件或目錄打成一個軟體包;同時,它也提供了多種文件壓縮工具,是的用戶可以對某些文件進行壓縮,以減小文件佔用的硬碟空間或方便網路傳輸.本文將通過例子來介紹如何合理地利用這些方法來管理Linux系統中的軟體.(更多全文請見:http://os.51cto.com/art/201011/235682.htm)

2、zip/unzip命令

zip程序位於/usr/bin目錄中,可將文件壓縮成.zip文件以節省硬碟空間,而當需要的時候又可將壓縮文件解開.unzip命令用於將壓縮文件解壓.

(1)用zip命令壓縮文件或文件夾

在Linux下輸入man zip,系統顯示zip的幫助文檔.

zip命令的使用形式為:zip [選項] 壓縮後文件名 待壓縮文件或文件夾.

其中:參數選項表明要完成的操作類型,壓縮后的文件名是某個合法的文件名,其後綴為zip,待壓縮文件或文件夾指明須要進行壓縮的文件或文件夾,可以是多個文件或文件夾.zip命令的參數選項如下:

  1. -1:最快壓縮,壓縮率最差.
  2. -9:最大壓縮,壓縮率最佳.
  3. -b:暫存文件的路徑.該參數常用於zip文件存在而硬碟現有空間不足時.

  4. -c:替新增或更新的文件增加一行註解.
  5. -d:從zip文件移出一個文件.
  6. -D:不要在zip文件中儲存文件的目錄信息.
  7. -f:以新文件取代現有文件.
  8. -F:修復已經損毀的壓縮文件.
  9. -g:將文件壓縮附加到zip文件中.
  10. -h:顯示輔助說明.
  11. -i:指定要加入的某些特定文件.
  12. -j:只儲存文件的名稱,不含目錄.
  13. -m:將特定文件移入zip文件中,並且刪除特定文件.
  14. -n:不壓縮特定擴展名的文件.
  15. -o:將zip文件的時間設成修正zip文件的時間.
  16. -q:安靜模式,不會顯示相關訊息和提示.
  17. -r:包括子目錄.
  18. -t:只處理mmddyy日期以後的文件.
  19. -T:測試zip文件是否正常.
  20. -u:只更新改變過的文件和新文件.
  21. -v:顯示版本信息或詳細資料.
  22. -x:不須要壓縮的文件.
  23. -y:將symbolic link壓縮,而不是壓縮所連結到的文件.
  24. -z:為zip文件增加註解.
  25. -#:設定壓縮速度.-0表示不壓縮,-1表示最快速度的壓縮,-9表示最慢速度的壓縮(最佳化的壓縮).預設值為-6.
  26. ? -@:從標準輸入讀取文件名稱.

注意:使用zip命令可以將許多文件壓縮成一個文件,這與gzip是有區別的.

下面給出使用該命令壓縮文件或文件夾的例子:

   //顯示當前目錄下所有文件和文件夾   #ll   總用量 9   drwx------    1 root     root         4096  10月 15 19:45 gzip   drwx------    1 root     root            0  10月 12 21:25 smart   -rwx------    1 root     root           26  10月 13 22:51 smart.txt   -rwx------    1 root     root          226  10月 13 22:51 tar_create.txt   -rwx------    1 root     root         7433  10月 13 22:51 tar.txt   drwx------    1 root     root         4096  10月 13 22:13 xplns       //將當前目錄下的所有文件和文件夾全部壓縮成gong.zip壓縮文件,-r表示遞歸壓縮子目錄下所有文件   # zip -r gong.zip ./*   adding: gzip/ (stored 0%)   adding: gzip/gong.tar.gz (stored 0%)   adding: smart/ (stored 0%)   adding: smart/smartsuite-2.1-2.i386.rpm (deflated 5%)   adding: smart.txt (stored 0%)   adding: tar_create.txt (deflated 44%)   adding: tar.txt (deflated 68%)   adding: xplns/ (stored 0%)   adding: xplns/xplns-cat-3.3.1-1.i386.rpm.gz (deflated 0%)   adding: xplns/xplns-elm-3.3.1-1.i386.rpm.gz (deflated 0%)   adding: xplns/xplns-img-3.3.1-1.i386.rpm.gz (deflated 0%)       //再顯示當前目錄下所有文件,可以發現壓縮文件gong.zip已經生成   #ll   總用量 1621   -rwx------1 root  root  3301222 10月 15 19:49 gong.zip   drwx------1 root  root  4096 10月 15 19:45 gzip   drwx------1 root  root     0  10月 12 21:25 smart   -rwx------1 root  root    26  10月 13 22:51 smart.txt   -rwx------1 root  root   226  10月 13 22:51 tar_create.txt   -rwx------1 root  root  7433 10月 13 22:51 tar.txt   drwx------1 root  root  4096 10月 13 22:13 xplns        

用帶-v參數選項可以查看zip文件的內容,這點類似於帶t參數選項的tar命令.只不過前者用於顯示壓縮的zip文件的內容,後者用於顯示tar文件的內容.與帶t參數選項的tar命令類似,帶v參數選項的zip命令實際上並不解壓縮文件.用帶-v參數選項的zip命令舉例如下:

   //顯示當前目錄下所有文件,從顯示結果可以看出,當前目錄下只有一個gong.zip文件   # ll    總用量 1612   -rwx------    1 root     root      3301222  10月 15 19:49 gong.zip       //查看gong.zip文件的內容   # zip -v gong.zip   zip info: local extra (21 bytes) != central extra (13 bytes): gzip/   zip info: local extra (21 bytes) != central extra (13 bytes): gzip/gong.tar.gz   zip info: local extra (21 bytes) != central extra (13 bytes): smart/   zip info: local extra (21 bytes) != central extra (13 bytes): smart.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt   zip info: local extra (21 bytes) != central extra (13 bytes): xplns/

用帶-d參數選項的zip命令可以從zip壓縮文件中刪除某個文件,而使用帶-m的zip命令可以向zip壓縮文件添加某個文件,對帶-d和-m參數選項的zip命令舉例如下:

   # zip -v gong.zip    //顯示壓縮文件gong.zip的文件內容   zip info: local extra (21 bytes) != central extra (13 bytes): free.txt   zip info: local extra (21 bytes) != central extra (13 bytes): smart.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt       //刪除壓縮文件中smart.txt文件   # zip -d gong.zip smart.txt   deleting: smart.txt       //再顯示壓縮文件內容,可以發現文件刪除成功   # zip -v gong.zip   zip info: local extra (21 bytes) != central extra (13 bytes): free.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt       //向壓縮文件中gong.zip中添加rpm_info.txt文件   # zip -m gong.zip ./rpm_info.txt    adding: rpm_info.txt (deflated 75%)       //再顯示壓縮文件內容,可以發現文件添加成功   # zip -v gong.zip   zip info: local extra (21 bytes) != central extra (13 bytes): free.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt   zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt   zip info: local extra (21 bytes) != central extra (13 bytes): rpm_info.txt        

(2)用unzip命令解壓縮文件

unzip命令用於擴展名為zip的壓縮文件的解壓縮,同時,Windows下用壓縮軟體Winzip壓縮的文件在Linux系統下也可以用unzip命令解壓縮.unzip命令的語法如下:

unzip [參數選項] 壓縮文件名.zip.

所有參數選項如下:

  1. -x:文件列表:解壓縮文件,但不包括指定的file文件.
  2. -v:查看壓縮文件目錄,但不解壓縮.
  3. -t:測試文件有無損壞,但不解壓縮.
  4. -d:目錄:把壓縮文件解壓縮到指定目錄下.
  5. -z:只顯示壓縮文件的註解.
  6. -n:不覆蓋已經存在的文件.
  7. -o:覆蓋已存在的文件且不要求用戶確認.
  8. -j:不重建文檔的目錄結構,把所有文件解壓縮到同一目錄下.

unzip命令的常用用法有:

簡單解壓縮文件:將壓縮文件解壓縮到當前目錄下.

   //顯示當前目錄下所有文件,從顯示結果可以發現當前目錄下只有一個文件gong.zip   # ll   總用量 7   -rwx------    1 root     root        13512  10月 15 20:44 gong.zip       //將gong.zip解壓縮到當前目錄   # unzip gong.zip   Archive:  gong.zip   inflating: free.txt   inflating: tar_create.txt   inflating: tar.txt   inflating: rpm_info.txt       //再顯示當前目錄下所有文件,從顯示結果可以發現,gong.zip壓縮文件中所有文件已經成功解壓縮到當前目錄   # ll   總用量 32   -rwx------    1 root     root          230  10月 15 21:03 free.txt   -rwx------    1 root     root        13512  10月 15 20:44 gong.zip   -rwx------    1 root     root        40833  10月 15 21:03 rpm_info.txt   -rwx------    1 root     root          226  10月 15 21:03 tar_create.txt   -rwx------    1 root     root         7433  10月 15 21:03 tar.txt

解壓縮文件到指定目錄:將壓縮文件解壓縮到指定的目錄下,如果已有相同的文件存在,unzip命令不覆蓋原來的文件.

   //解壓縮當前目錄下的text.zip壓縮文件,-n參數選項指明不覆蓋原有文件,-d /tmp指明將文件解壓縮到/tmp目錄下   #unzip -n text.zip -d /tmp    //查看壓縮文件目錄:類似於帶-v參數的zip命令,只顯示壓縮文件內容,並不實際解壓縮文件.   #unzip -v text.zip  //顯示當前目錄下text.zip壓縮文件內容         

3、bzip2命令

bzip2是一個無損壓縮軟體,具有高質量的數據壓縮能力.它能將文件壓縮到原來的10%到15%,壓縮速度和解壓縮速度都非常高,因此在Linux下得到廣泛使用.

bzip2從命令行讀入文件名和參數,每個文件都被名為“原始文件名.bz2”的壓縮文件替換.每個壓縮文件具有與原文件相同的修改時間和許可權,如果可能的話,還具有相同的屬主,因此在解壓縮時這些特性將正確地恢復.

(1)bzip2命令參數選項

  1. -c:將數據壓縮或解壓縮至標準輸出.
  2. -d:強制解壓縮.bzip2、bunzip2和bzcat實際上是同一個程序,進行何種操作將根據程序名確定.指定該選項后將不考慮這一機制,強制bzip2解壓縮.
  3. -z:和-d選項類似,強制進行壓縮操作,而不管輸入的是哪個程序名.
  4. -t:檢查指定文件的完整性,但並不對其解壓縮.實際上將對數據進行實驗性的解壓縮操作,而不輸出結果.
  5. -f:強制覆蓋輸出文件.通常bzip2不會覆蓋已經存在的文件.該選項還強制bzip2打破文件的硬鏈接,默認情況下bzip2不會這麼做.
  6. -k:在壓縮或解壓縮時保留輸入文件(不刪除這些文件).
  7. ? -s:在壓縮、解壓縮及檢查時減少內存用量.採用一種修正的演算法進行壓縮和測試,每個數據塊僅需要2.5個位元組.這意味著任何文件都可以在2300k的內存中進行解壓縮,儘管速度只有通常情況下的一半.在壓縮時,-s將選定200k的塊長度,內存用量也限制在200k左右,代價是壓縮率會降低.總之,如果機器的內存較少(8兆位元組或更少),可對所有操作都採用-s選項.

  8. -q:壓制不重要的警告信息.屬於I/O錯誤及其他嚴重事件的信息將不會被壓制.
  9. -v:詳盡模式--顯示每個被處理文件的壓縮率.命令行中更多的-v選項將增加詳細的程度,使bzip2顯示出許多主要用於診斷目的信息.
  10. -L:顯示軟體版本,許可證條款及條件.
  11. -1to-9:在壓縮時將塊長度設為100k、200k.、900k.對解壓縮沒有影響.

(2)用bzip2命令壓縮文件

   //顯示當前目錄下所有文件   # ll   總用量 32   -rwx------    1 root     root          230  10月 15 22:06 free.txt   -rwx------    1 root     root        13512  10月 15 22:06 gong.zip   -rwx------    1 root     root        40833  10月 15 22:06 rpm_info.txt   -rwx------    1 root     root          226  10月 15 22:06 tar_create.txt   -rwx------    1 root     root         7433  10月 15 22:06 tar.txt       //用bzip2命令壓縮當前目錄下所有文件,用bunzip2 -z * 將獲得相同的效果   #bzip2 *       //再顯示當前目錄下所有文件,從顯示結果可以看出,所有文件都壓縮成了原文件名加bz2後綴的形式   # ll   總用量 15   -rwx------    1 root     root          157  10月 15 22:06 free.txt.bz2   -rwx------    1 root     root        13824  10月 15 22:06 gong.zip.bz2   -rwx------    1 root     root         9366  10月 15 22:06 rpm_info.txt.bz2   -rwx------    1 root     root          165  10月 15 22:06 tar_create.txt.bz2   -rwx------    1 root     root         2326  10月 15 22:06 tar.txt.bz2

(3)用bunzip2命令解壓縮文件

   //顯示當前目錄下所有文件   # ll   總用量 15   -rwx------    1 root     root         230  10月 15 22:17 free.txt   -rwx------    1 root     root       13824  10月 15 22:17 gong.zip.bz2   -rwx------    1 root     root        9366  10月 15 22:17 rpm_info.txt.bz2   -rwx------    1 root     root         165  10月 15 22:17 tar_create.txt.bz2   -rwx------    1 root     root        2326  10月 15 22:17 tar.txt.bz2       //用bunzip2命令解壓縮當前目錄下所有文件,其中有一個文件free.txt不是以bz2為後綴   //從顯示結果可以看出,對free.txt文件解壓縮時報錯   # bunzip2 *   bunzip2: Can't guess original name for free.txt -- using free.txt.out   bunzip2: free.txt is not a bzip2 file.       //再顯示當前目錄下所有文件,從顯示結果可以看出,所有bz2文件都解壓縮成功   # ll   總用量 32   -rwx------    1 root     root          230  10月 15 22:17 free.txt   -rwx------    1 root     root        13512  10月 15 22:18 gong.zip   -rwx------    1 root     root        40833  10月 15 22:18 rpm_info.txt   -rwx------    1 root     root          226  10月 15 22:18 tar_create.txt   -rwx------    1 root     root         7433  10月 15 22:18 tar.txt        

本文出自 「卓越始於足下」 博客,謝絕轉載!


[火星人 ] 手把手教你Linux下的文件管理(二)已經有631次圍觀

http://coctec.com/docs/linux/show-post-48509.html