Linux-(tar,gzip,df,du)

tar命令

首先要弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件經過一些壓縮算法變成一個小文件。node

爲何要區分這兩個概念呢?這源於Linux中不少壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),而後再用壓縮程序進行壓縮(gzip bzip2命令)。tar自己不具備壓縮功能。他是調用壓縮功能實現的 linux

1.命令格式:

tar [必要參數] [選擇參數] [文件] git

2.命令參數:

必要參數有以下:算法

-A   新增壓縮文件到已存在的壓縮服務器

-B   設置區塊大小測試

-c   創建新的壓縮文件ui

-d   記錄文件的差異spa

-r   添加文件到已經壓縮的文件操作系統

-u   添加改變了和現有的文件到已經存在的壓縮文件code

-x   從壓縮的文件中提取文件

-t   顯示壓縮文件的內容

-z   支持gzip解壓文件

-j   支持bzip2解壓文件

-Z   支持compress解壓文件

-v   顯示操做過程

-l   文件系統邊界設置

-k   保留原有文件不覆蓋

-m   保留文件不被覆蓋

-W   確認壓縮文件的正確性

可選參數以下:

-b   設置區塊數目

-C   切換到指定目錄

-f   指定壓縮文件

--help   顯示幫助信息

--version   顯示版本信息

3.常看法壓/壓縮命令

.tar 
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是壓縮!)

.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName

.tar.gz 和 .tgz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName

.bz2
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName

.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName

.bz
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓縮:未知

.tar.bz
解壓:tar jxvf FileName.tar.bz
壓縮:未知
.Z
解壓:uncompress FileName.Z
壓縮:compress FileName

.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName

.zip
解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
.rar
解壓:rar x FileName.rar
壓縮:rar a FileName.rar DirName 

4.使用實例

將文件所有打包成tar包

命令:

tar -cvf log.tar log2012.log    僅打包,不壓縮! 

tar -zcvf log.tar.gz log2012.log   打包後,以 gzip 壓縮 

tar -jcvf log.tar.bz2 log2012.log  打包後,以 bzip2 壓縮 

在參數 f 以後的文件檔名是本身取的,習慣上都用 .tar 來做爲辨識。 若是加 z 參數,則以 .tar.gz 或 .tgz 來表明 gzip 壓縮過的 tar包; 若是加 j 參數,則以 .tar.bz2 來做爲tar包名。

查閱上述 tar包內有哪些文件

命令:tar -ztvf log.tar.gz

只將 /tar 內的 部分文件解壓出來

命令:tar -zcvf log30.tar.gz log2012.log log2013.log 

能夠透過 tar -ztvf 來查閱 tar 包內的文件名稱,若是單隻要一個文件,就能夠透過這個方式來解壓部分文件!

文件備份下來,而且保存其權限

命令:tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log 

說明:這個 -p 的屬性是很重要的,尤爲是當您要保留本來文件的屬性時

在文件夾當中,比某個日期新的文件才備份

命令:tar -N "2012/11/13" -zcvf log17.tar.gz test

備份文件夾內容是排除部分文件

命令:tar --exclude scf/service -zcvf scf.tar.gz scf/*

gzip命令

1.命令格式:

gzip [參數] [文件或者目錄]

2.命令功能:

gzip不只能夠用來壓縮大的、較少使用的文件以節省磁盤空間,還能夠和tar命令一塊兒構成Linux操做系統中比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率。gzip是個使用普遍的壓縮程序,文件經它壓縮事後,其名稱後面會多出".gz"的擴展名。

3.命令參數:

-a或--ascii  使用ASCII文字模式。 

-c或--stdout或--to-stdout  把壓縮後的文件輸出到標準輸出設備,不去更動原始文件。 

-d或--decompress或----uncompress  解開壓縮文件。 

-f或--force  強行壓縮文件。不理會文件名稱或硬鏈接是否存在以及該文件是否爲符號鏈接。 

-h或--help  在線幫助。 

-l或--list  列出壓縮文件的相關信息。 

-L或--license  顯示版本與版權信息。 

-n或--no-name  壓縮文件時,不保存原來的文件名稱及時間戳記。 

-N或--name  壓縮文件時,保存原來的文件名稱及時間戳記。 

-q或--quiet  不顯示警告信息。 

-r或--recursive  遞歸處理,將指定目錄下的全部文件及子目錄一併處理。 

-S<壓縮字尾字符串>或----suffix<壓縮字尾字符串>  更改壓縮字尾字符串。 

-t或--test  測試壓縮文件是否正確無誤。 

-v或--verbose  顯示指令執行過程。 

-V或--version  顯示版本信息。 

-num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統缺省值爲6。 

4.使用實例:

把test6目錄下的每一個文件壓縮成.gz文件

命令:gzip *

把每一個壓縮的文件解壓,並列出詳細的信息

命令:gzip -dv *

[root@localhost test6]# ll
總計 604
---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log
---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log
[root@localhost test6]# gzip *
[root@localhost test6]# ll
總計 28
---xr--r-- 1 root mail  1341 11-30 08:39 linklog.log.gz
---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz

[root
@localhost test6]# ll 總計 28 ---xr--r-- 1 root mail 1341 11-30 08:39 linklog.log.gz ---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz [root@localhost test6]# gzip -dv * linklog.log.gz: 99.6% -- replaced with linklog.log log2012.log.gz: 99.6% -- replaced with log2012.log [root@localhost test6]# ll 總計 604 ---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log [root@localhost test6]#

詳細顯示每一個壓縮的文件的信息,並不解壓

命令:gzip -l *

[root@localhost test6]# gzip -l *
         compressed        uncompressed  ratio uncompressed_name
               1341              302108  99.6% linklog.log
               1341              302108  99.6% log2012.log
                 70                  61  47.5% log2013.log
               2880              604277  99.5% (totals)

壓縮一個tar備份文件,此時壓縮文件的擴展名爲.tar.gz

命令:gzip -r log.tar

遞歸的壓縮目錄

命令:gzip -rv test6

[root@localhost test6]# ll
總計 604
---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log
---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log
[root@localhost test6]# cd ..
[root@localhost test]# gzip -rv test6
test6/linklog.log:       99.6% -- replaced with test6/linklog.log.gz
test6/log2012.log:       99.6% -- replaced with test6/log2012.log.gz
[root@localhost test]# cd test6
[root@localhost test6]# ll
總計 28
---xr--r-- 1 root mail  1341 11-30 08:39 linklog.log.gz
---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz

du命令

1.命令格式:

du [選項] [文件]

2.命令功能:

Linux du命令也是查看使用空間的,可是與df命令不一樣的是Linux du命令是對文件和目錄磁盤使用的空間的查看,仍是和df命令有一些區別的.

顯示每一個文件和目錄的磁盤使用空間。

3.命令參數:

-a或-all  顯示目錄中個別文件的大小。   

-b或-bytes  顯示目錄或文件大小時,以byte爲單位。   

-c或--total  除了顯示個別目錄或文件的大小外,同時也顯示全部目錄或文件的總和。 

-k或--kilobytes  以KB(1024bytes)爲單位輸出。

-m或--megabytes  以MB爲單位輸出。   

-s或--summarize  僅顯示總計,只列出最後加總的值。

-h或--human-readable  以K,M,G爲單位,提升信息的可讀性。

-x或--one-file-xystem  以一開始處理時的文件系統爲準,若趕上其它不一樣的文件系統目錄則略過。 

-L<符號連接>或--dereference<符號連接> 顯示選項中所指定符號連接的源文件大小。   

-S或--separate-dirs   顯示個別目錄的大小時,並不含其子目錄的大小。 

-X<文件>或--exclude-from=<文件>  在<文件>指定目錄或文件。   

--exclude=<目錄或文件>         略過指定的目錄或文件。    

-D或--dereference-args   顯示指定符號連接的源文件大小。   

-H或--si  與-h參數相同,可是K,M,G是以1000爲換算單位。   

-l或--count-links   重複計算硬件連接的文件。  

4.使用實例:

顯示目錄或者文件所佔空間 

命令:du

[root@localhost test]# du
608     ./test6
308     ./test4
4       ./scf/lib
4       ./scf/service/deploy/product
4       ./scf/service/deploy/info
12      ./scf/service/deploy
16      ./scf/service
4       ./scf/doc
4       ./scf/bin
32      ./scf
8       ./test3
1288    .
[root@localhost test]#

說明:只顯示當前目錄下面的子目錄的目錄大小和當前目錄的總的大小,最下面的1288爲當前目錄的總大小

顯示指定文件所佔空間

命令:du log2012.log

只顯示總和的大小

命令:du -s

按照空間大小排序

命令:du| sort -nr |more

輸出當前目錄下各個子目錄所使用的空間

命令:du -h  --max-depth=1

df命令 

1.命令格式:

df [選項] [文件]

2.命令功能:

linux中df命令的功能是用來檢查linux服務器的文件系統的磁盤空間佔用狀況。能夠利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。

顯示指定磁盤文件的可用空間。若是沒有文件名被指定,則全部當前被掛載的文件系統的可用空間將被顯示。默認狀況下,磁盤空間將以 1KB 爲單位進行顯示,除非環境變量 POSIXLY_CORRECT 被指定,那樣將以512字節爲單位進行顯示

3.命令參數:

必要參數:

-a 所有文件系統列表

-h 方便閱讀方式顯示

-H 等於「-h」,可是計算式,1K=1000,而不是1K=1024

-i 顯示inode信息

-k 區塊爲1024字節

-l 只顯示本地文件系統

-m 區塊爲1048576字節

--no-sync 忽略 sync 命令

-P 輸出格式爲POSIX

--sync 在取得磁盤信息前,先執行sync命令

-T 文件系統類型

選擇參數:

--block-size=<區塊大小> 指定區塊大小

-t<文件系統類型> 只顯示選定文件系統的磁盤信息

-x<文件系統類型> 不顯示選定文件系統的磁盤信息

--help 顯示幫助信息

--version 顯示版本信息

4.使用實例:

顯示磁盤使用狀況

命令:df

➜  ConfigCenter git:(develop) df
Filesystem    512-blocks      Used Available Capacity  iused   ifree %iused  Mounted on
/dev/disk1     487849984 427378800  59959184    88% 53486348 7494898   88%   /
devfs                652       652         0   100%     1128       0  100%   /dev
map -hosts             0         0         0   100%        0       0  100%   /net
map auto_home          0         0         0   100%        0       0  100%   /home

說明:

Filesystem是表明文件系統對應的設備文件的路徑名(通常是硬盤上的分區);

blocks給出分區包含的數據塊(1024字節)的數目;

used,available分別表示已用的和可用的數據塊數目。用戶也許會感到奇怪的是,第3,4列塊數之和不等於第2列中的塊數。這是由於缺省的每一個分區都留了少許空間供系統管理員使用。即便遇到普通用戶空間已滿的狀況,管理員仍能登陸和留有解決問題所需的工做空間。

iuse,ifree分別表示已用和可用的inode。

iused%,capacity列表示普通用戶空間使用的百分比,即便這一數字達到100%,分區仍然留有系統管理員使用的空間。

Mounted on列表示文件系統的掛載點。

顯示指定類型磁盤

命令:df -t ext3

相關文章
相關標籤/搜索