?? tar
字號(hào):
Windows下最常見(jiàn)的壓縮文件只有兩種,.zip和.rar。可是Linux就不同了,有.Z、bz2、.gz、.tar、.tar.gz等眾多的壓 縮文件名,它們分別對(duì)應(yīng)了各種壓縮打包命令。要了解這些壓縮打包命令的使用,首先要弄清兩個(gè)概念:打包和壓縮。打包是指將一大堆文件或目錄什么的變成一個(gè) 總的文件,壓縮則是將一個(gè)大的文件通過(guò)一些壓縮算法變成一個(gè)小文件。Linux中的很多壓縮命令只能針對(duì)一個(gè)文件進(jìn)行壓縮,當(dāng)要壓縮一大堆文件時(shí),就得先 借助打包命令將這一大堆文件先打成一個(gè)包,然后再用壓縮命令進(jìn)行壓縮。因此打包命令在Linux的應(yīng)用中具有很重要的作用。
Linux下最常用的打包命令就是tar,使用tar命令打包后,就可以用其它的命令來(lái)進(jìn)行壓縮了。tar命令的使用方法如下:
tar [-cxtzjvfpPN] 文件與目錄
參數(shù)說(shuō)明:
-c :建立一個(gè)打包文件;
-x :解開(kāi)一個(gè)打包文件;
-t :查看 tar包里面的文件;
(特別注意,在選擇參數(shù)時(shí),c/x/t僅能存在一個(gè),不可同時(shí)存在,因?yàn)椴豢赡芡瑫r(shí)壓縮與解壓縮。)
-z :打包后用gzip壓縮,生成.tar.gz文件;
-j :打包后用zip2壓縮,生成.tar.bz2文件;
-v :壓縮的過(guò)程中顯示文件;
-f :使用文件名,請(qǐng)留意,在f之后要立即接文件名,不要再加其它參數(shù);
-p :保持原文件的屬性;
-P :使用絕對(duì)路徑來(lái)壓縮;
-N :設(shè)定日期(yyyy/mm/dd),比后面接的日期還要新的文件才會(huì)被打包進(jìn)新建的文件中;
--exclude FILE:在打包的過(guò)程中,不要將FILE打包。
舉幾個(gè)例子:
例一:將整個(gè)/etc目錄下的文件全部打包成為/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc #僅打包,不壓縮
tar -zcvf /tmp/etc.tar.gz /etc #打包后,以gzip壓縮
tar -jcvf /tmp/etc.tar.bz2 /etc #打包后,以bzip2壓縮
例二:查閱上述/tmp/etc.tar.gz文件內(nèi)有哪些文件
tar -ztvf /tmp/etc.tar.gz
例三:將/tmp/etc.tar.gz文件解壓縮到/usr/local/src下
cd /usr/local/src #先將工作目錄變換到/usr/local/src下
tar -zxvf /tmp/etc.tar.gz
例四:只將/tmp/etc.tar.gz內(nèi)的etc/passwd解壓到/tmp下
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd
例五:將/etc內(nèi)的所有文件備份下來(lái),并且保存其權(quán)限!
tar -zxvpf /tmp/etc.tar.gz /etc
例六:在/home當(dāng)中,比2005/06/01新的文件才備份
tar -N '2005/06/01' -zcvf home.tar.gz /home
例七:備份/home、/etc,但不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
例八:將/etc打包后直接解開(kāi)在/tmp底下,而不產(chǎn)生文件!
cd /tmp
tar -cvf - /etc | tar -xvf -
現(xiàn)在有一個(gè)需求,不知道該如何才能實(shí)現(xiàn)
壓縮: tar czvf /data/backup/test.tar.gz /data/a/b/directory
解壓:
cd /data/test
tar xzvf /data/backup/test.tar.gz
問(wèn)題是,解壓后的文件,在/data/test/data/a/b/directory里面
能否壓縮時(shí)只保留directory以下的所有目錄,以directory作為/,而不是/data/a/b/directory?
問(wèn)題已經(jīng)解決,找到了GNU tar的官方資料
http://www.delorie.com/gnu/docs/tar/tar_98.html
這樣寫(xiě)就可以解決了
tar czvf /data/backup/test.tar.gz /data/a/b/directory
改成
tar czvf /data/backup/test.tar.gz -C /data/a/b(空格)directory
-C是臨時(shí)切換工作目錄,-P是絕對(duì)路徑,在這里只用到-C參數(shù)就行了
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -