Linux tar命令使用列子第1/2頁(yè)
更新時(shí)間:2008年06月08日 10:24:25 作者:
對(duì)許多用戶(hù)來(lái)說(shuō),在DOS和Windows環(huán)境下利用工具軟件WinZip、ARJ等壓縮或解壓文件是比較容易的事。但是,在Linux中如何對(duì)文件進(jìn)行壓縮與解壓呢?
用tar建立存檔
tar是"tape archive"(磁帶存檔)的簡(jiǎn)稱(chēng),它出現(xiàn)在還沒(méi)有軟盤(pán)驅(qū)動(dòng)器、硬盤(pán)和光盤(pán)驅(qū)動(dòng)器的計(jì)算機(jī)早期階段。那時(shí)軟件的發(fā)行和備份都需要大卷的磁帶,計(jì)算機(jī)上運(yùn)行的頭幾個(gè)程序中就得有一個(gè)是磁帶的閱讀程序。隨著時(shí)間的推移, tar命令逐漸變?yōu)橐粋€(gè)將很多文件進(jìn)行存檔的工具,目前許多用于Linux操作系統(tǒng)的程序就是打包為tar檔案文件的形式。
tar 命令的格式是:
tar [option] <file>;
tar命令有很多參數(shù),利用f選項(xiàng)、設(shè)備或文件的名字可以指示tar命令將檔案置于特定的設(shè)備或文件中。當(dāng)為tar的檔案創(chuàng)建一個(gè)文件時(shí),這個(gè)文件名的擴(kuò)展通常是如果指定了一個(gè)目錄名,那么它所有的子目錄都會(huì)被包含在檔案之中。
利用tar命令和f選項(xiàng)的格式如下所示:
#tar opionsf archive-name.tar directory-and-filenames
要?jiǎng)?chuàng)建一個(gè)檔案應(yīng)使用c選項(xiàng),與f選項(xiàng)一起,c選項(xiàng)會(huì)在設(shè)備或文件中創(chuàng)建檔案,應(yīng)在f選項(xiàng)的左邊輸入這一選項(xiàng)。在下例中,目錄mydir和它所有的子目錄都被存入文件myarch.tar中。
#tar cf myarch.tar mydir
如果想要改動(dòng)已經(jīng)存檔的目錄中的文件,可以使用u選項(xiàng)使tar更新檔案中的文件。tar比較每一個(gè)檔案文件與相應(yīng)用戶(hù)目錄中文件最近一次修改的時(shí)間,然后將上一次存檔之后又被修改過(guò)的文件拷貝到檔案文件中去。在用戶(hù)目錄中新創(chuàng)建的文件也會(huì)被添加到檔案文件中。在下面的例子中,用戶(hù)用mydir目錄中最近被修改或添加的文件來(lái)對(duì)myarch.tar文件進(jìn)行更新。
#tar uf myarch.tar mydir
如果想查看在一個(gè)檔案中存儲(chǔ)著哪些文件,可以使用tar命令和t選項(xiàng)。下面命令列出所有存儲(chǔ)在myarch.tar檔案中的文件:
#tar tf myarch.tar
要將文件備份到一個(gè)特定的設(shè)備,只須把設(shè)備名作為檔案。在下面的例子中,用戶(hù)在/dev/fdo設(shè)備的軟盤(pán)中創(chuàng)建了一個(gè)檔案,并將mydir目錄中所有的文件都拷貝到檔案中。
#tar cf/dev/fdo mydir
要恢復(fù)設(shè)備磁盤(pán)中的文件,可使用xf選項(xiàng):
#tar xf/dev/fdo
如果所備份的文件大小超過(guò)設(shè)備可用的存儲(chǔ)器,比如軟盤(pán),此時(shí)就可以創(chuàng)建一個(gè)使用多個(gè)標(biāo)號(hào)的tar檔案。當(dāng)使用m選項(xiàng)向一個(gè)軟驅(qū)進(jìn)行存檔時(shí),tar命令在一張軟盤(pán)已滿(mǎn)的時(shí)候會(huì)提醒再放入一張新的軟盤(pán)。
#tar cmf/dev/fdo mydir
要想恢復(fù)幾張盤(pán)中的檔案,只要將第一張軟盤(pán)放入軟驅(qū),然后輸入有x和m選項(xiàng)的tar命令。必要時(shí)會(huì)被提醒放入另外一張軟盤(pán)。
#tar xmf/dev/fdo
tar操作不會(huì)對(duì)檔案文件實(shí)行壓縮操作。如果想壓縮檔案文件,可以指示tar激活gzip實(shí)用工具,在存檔之前對(duì)文件進(jìn)行壓縮。利用z選項(xiàng),tar在對(duì)文件存檔之前首先要使用gzip來(lái)壓縮文件。當(dāng)恢復(fù)文件時(shí),同樣的Z選項(xiàng)將激活gzip對(duì)文件解壓。
#tar czf myarch.tar mydir
值得注意的是,壓縮檔案中的單個(gè)文件和整體壓縮檔案是不同的。通常檔案文件是為了便于傳輸而把幾個(gè)文件組合成為一個(gè)tar文件。為了縮短傳輸時(shí)間,檔案應(yīng)當(dāng)越小越好,可以將其壓縮然后傳送壓縮后的版本。接收者可以對(duì)之解壓縮,然后恢復(fù)tar文件。在tar文件上使用gzip將會(huì)產(chǎn)生有.tar.gz擴(kuò)展名的文件。擴(kuò)展名.gz被加到被壓縮的gzip文件名之后。
下面的例子創(chuàng)建了myarch.tar的一個(gè)壓縮的版本,它具有了.gz的擴(kuò)展名。
#gzip myarch.tar
#ls
#myarch.tar.gz
tar命令雖然有非常多的參數(shù),但是使用起來(lái)并不困難,可以快速而又簡(jiǎn)單地為任何需要的子目錄生成檔案文件。
首先,我們來(lái)建立一個(gè)有三個(gè)文件的子目錄,再建立一個(gè)有另外三個(gè)文件的子目錄,如下所示:
# mkdir mydir
#cd mydir
# touch file1 file2 file3
# mkdir mydir2
#cd mydir2
# touch file21 file22 file23
#cd../..
#tree mydir
mydir
file1
file2
file3
mydir2
file21
file22
file23
現(xiàn)在已經(jīng)有了一個(gè)子目錄和其中的文件,使用這個(gè)命令的c(生成)和f(文件)參數(shù)來(lái)生成一個(gè)tar檔案文件:
# tar cf mydir.tar mydir
# ls -l *.tar
- r w - r - - r - - 1 bball u s e r s 10240 Jan 5 15 : 01 mydir. t a r
請(qǐng)注意,原來(lái)的子目錄并沒(méi)有發(fā)生變化。在缺省的情況下,tar命令不會(huì)刪除原來(lái)的子目錄和文件。如果想看看命令執(zhí)行的過(guò)程,可以使用v參數(shù),如下所示:
# tar cvf mydir.tar mydir
mydir/
mydir/file1
mydir/file2
mydir/file3
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file22
mydir/mydir2/file23
tar命令在進(jìn)行操作的時(shí)候,就會(huì)把正在添加到檔案文件中去的子目錄和文件的文件名顯示出來(lái)。使用w參數(shù),即交互參數(shù),這樣tar命令在執(zhí)行的過(guò)程當(dāng)中會(huì)詢(xún)問(wèn)是否想加入每個(gè)文件。當(dāng)想有選擇地備份內(nèi)容不多的子目錄的時(shí)候,這樣就非常地方便,如下所示:
# tar cwf mydir.tar mydir
add mydir?y
add mydir/file1?n
add mydir/file2?y
add mydir/file3?n
add mydir/mydir2?y
add mydir/mydir2/file21?y
add mydir/mydir2/file22?n
add mydir/mydir2/file23?y
在上面的例子中,沒(méi)有把文件file1、file3和文件file22歸檔??梢允褂胻ar命令的t參數(shù)列出檔案文件中的內(nèi)容,f參數(shù)定義操作所使用的tar檔案文件,如下所示:
# tar tf mydir.tar
mydir/
mydir/file2
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file23
需要注意的是,如果參數(shù)的順序放錯(cuò)了,tar命令會(huì)顯示出錯(cuò)信息并退出。
下面就來(lái)看看如何來(lái)釋放整個(gè)的檔案文件或者其中的某一個(gè)文件。如果想釋放其中所有的文件,可以同時(shí)使用-x釋放參數(shù)和-f。為了了解命令執(zhí)行的過(guò)程,還可以加上-v參數(shù):
# tar xvf mydir.tar
mydir/
mydir/file2
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file23
tar是"tape archive"(磁帶存檔)的簡(jiǎn)稱(chēng),它出現(xiàn)在還沒(méi)有軟盤(pán)驅(qū)動(dòng)器、硬盤(pán)和光盤(pán)驅(qū)動(dòng)器的計(jì)算機(jī)早期階段。那時(shí)軟件的發(fā)行和備份都需要大卷的磁帶,計(jì)算機(jī)上運(yùn)行的頭幾個(gè)程序中就得有一個(gè)是磁帶的閱讀程序。隨著時(shí)間的推移, tar命令逐漸變?yōu)橐粋€(gè)將很多文件進(jìn)行存檔的工具,目前許多用于Linux操作系統(tǒng)的程序就是打包為tar檔案文件的形式。
tar 命令的格式是:
tar [option] <file>;
tar命令有很多參數(shù),利用f選項(xiàng)、設(shè)備或文件的名字可以指示tar命令將檔案置于特定的設(shè)備或文件中。當(dāng)為tar的檔案創(chuàng)建一個(gè)文件時(shí),這個(gè)文件名的擴(kuò)展通常是如果指定了一個(gè)目錄名,那么它所有的子目錄都會(huì)被包含在檔案之中。
利用tar命令和f選項(xiàng)的格式如下所示:
#tar opionsf archive-name.tar directory-and-filenames
要?jiǎng)?chuàng)建一個(gè)檔案應(yīng)使用c選項(xiàng),與f選項(xiàng)一起,c選項(xiàng)會(huì)在設(shè)備或文件中創(chuàng)建檔案,應(yīng)在f選項(xiàng)的左邊輸入這一選項(xiàng)。在下例中,目錄mydir和它所有的子目錄都被存入文件myarch.tar中。
#tar cf myarch.tar mydir
如果想要改動(dòng)已經(jīng)存檔的目錄中的文件,可以使用u選項(xiàng)使tar更新檔案中的文件。tar比較每一個(gè)檔案文件與相應(yīng)用戶(hù)目錄中文件最近一次修改的時(shí)間,然后將上一次存檔之后又被修改過(guò)的文件拷貝到檔案文件中去。在用戶(hù)目錄中新創(chuàng)建的文件也會(huì)被添加到檔案文件中。在下面的例子中,用戶(hù)用mydir目錄中最近被修改或添加的文件來(lái)對(duì)myarch.tar文件進(jìn)行更新。
#tar uf myarch.tar mydir
如果想查看在一個(gè)檔案中存儲(chǔ)著哪些文件,可以使用tar命令和t選項(xiàng)。下面命令列出所有存儲(chǔ)在myarch.tar檔案中的文件:
#tar tf myarch.tar
要將文件備份到一個(gè)特定的設(shè)備,只須把設(shè)備名作為檔案。在下面的例子中,用戶(hù)在/dev/fdo設(shè)備的軟盤(pán)中創(chuàng)建了一個(gè)檔案,并將mydir目錄中所有的文件都拷貝到檔案中。
#tar cf/dev/fdo mydir
要恢復(fù)設(shè)備磁盤(pán)中的文件,可使用xf選項(xiàng):
#tar xf/dev/fdo
如果所備份的文件大小超過(guò)設(shè)備可用的存儲(chǔ)器,比如軟盤(pán),此時(shí)就可以創(chuàng)建一個(gè)使用多個(gè)標(biāo)號(hào)的tar檔案。當(dāng)使用m選項(xiàng)向一個(gè)軟驅(qū)進(jìn)行存檔時(shí),tar命令在一張軟盤(pán)已滿(mǎn)的時(shí)候會(huì)提醒再放入一張新的軟盤(pán)。
#tar cmf/dev/fdo mydir
要想恢復(fù)幾張盤(pán)中的檔案,只要將第一張軟盤(pán)放入軟驅(qū),然后輸入有x和m選項(xiàng)的tar命令。必要時(shí)會(huì)被提醒放入另外一張軟盤(pán)。
#tar xmf/dev/fdo
tar操作不會(huì)對(duì)檔案文件實(shí)行壓縮操作。如果想壓縮檔案文件,可以指示tar激活gzip實(shí)用工具,在存檔之前對(duì)文件進(jìn)行壓縮。利用z選項(xiàng),tar在對(duì)文件存檔之前首先要使用gzip來(lái)壓縮文件。當(dāng)恢復(fù)文件時(shí),同樣的Z選項(xiàng)將激活gzip對(duì)文件解壓。
#tar czf myarch.tar mydir
值得注意的是,壓縮檔案中的單個(gè)文件和整體壓縮檔案是不同的。通常檔案文件是為了便于傳輸而把幾個(gè)文件組合成為一個(gè)tar文件。為了縮短傳輸時(shí)間,檔案應(yīng)當(dāng)越小越好,可以將其壓縮然后傳送壓縮后的版本。接收者可以對(duì)之解壓縮,然后恢復(fù)tar文件。在tar文件上使用gzip將會(huì)產(chǎn)生有.tar.gz擴(kuò)展名的文件。擴(kuò)展名.gz被加到被壓縮的gzip文件名之后。
下面的例子創(chuàng)建了myarch.tar的一個(gè)壓縮的版本,它具有了.gz的擴(kuò)展名。
#gzip myarch.tar
#ls
#myarch.tar.gz
tar命令雖然有非常多的參數(shù),但是使用起來(lái)并不困難,可以快速而又簡(jiǎn)單地為任何需要的子目錄生成檔案文件。
首先,我們來(lái)建立一個(gè)有三個(gè)文件的子目錄,再建立一個(gè)有另外三個(gè)文件的子目錄,如下所示:
# mkdir mydir
#cd mydir
# touch file1 file2 file3
# mkdir mydir2
#cd mydir2
# touch file21 file22 file23
#cd../..
#tree mydir
mydir
file1
file2
file3
mydir2
file21
file22
file23
現(xiàn)在已經(jīng)有了一個(gè)子目錄和其中的文件,使用這個(gè)命令的c(生成)和f(文件)參數(shù)來(lái)生成一個(gè)tar檔案文件:
# tar cf mydir.tar mydir
# ls -l *.tar
- r w - r - - r - - 1 bball u s e r s 10240 Jan 5 15 : 01 mydir. t a r
請(qǐng)注意,原來(lái)的子目錄并沒(méi)有發(fā)生變化。在缺省的情況下,tar命令不會(huì)刪除原來(lái)的子目錄和文件。如果想看看命令執(zhí)行的過(guò)程,可以使用v參數(shù),如下所示:
# tar cvf mydir.tar mydir
mydir/
mydir/file1
mydir/file2
mydir/file3
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file22
mydir/mydir2/file23
tar命令在進(jìn)行操作的時(shí)候,就會(huì)把正在添加到檔案文件中去的子目錄和文件的文件名顯示出來(lái)。使用w參數(shù),即交互參數(shù),這樣tar命令在執(zhí)行的過(guò)程當(dāng)中會(huì)詢(xún)問(wèn)是否想加入每個(gè)文件。當(dāng)想有選擇地備份內(nèi)容不多的子目錄的時(shí)候,這樣就非常地方便,如下所示:
# tar cwf mydir.tar mydir
add mydir?y
add mydir/file1?n
add mydir/file2?y
add mydir/file3?n
add mydir/mydir2?y
add mydir/mydir2/file21?y
add mydir/mydir2/file22?n
add mydir/mydir2/file23?y
在上面的例子中,沒(méi)有把文件file1、file3和文件file22歸檔??梢允褂胻ar命令的t參數(shù)列出檔案文件中的內(nèi)容,f參數(shù)定義操作所使用的tar檔案文件,如下所示:
# tar tf mydir.tar
mydir/
mydir/file2
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file23
需要注意的是,如果參數(shù)的順序放錯(cuò)了,tar命令會(huì)顯示出錯(cuò)信息并退出。
下面就來(lái)看看如何來(lái)釋放整個(gè)的檔案文件或者其中的某一個(gè)文件。如果想釋放其中所有的文件,可以同時(shí)使用-x釋放參數(shù)和-f。為了了解命令執(zhí)行的過(guò)程,還可以加上-v參數(shù):
# tar xvf mydir.tar
mydir/
mydir/file2
mydir/mydir2/
mydir/mydir2/file21
mydir/mydir2/file23
您可能感興趣的文章:
相關(guān)文章
詳解Linux如何查看當(dāng)前占用CPU或內(nèi)存最多的幾個(gè)進(jìn)程
本篇文章主要介紹了詳解Linux如何查看當(dāng)前占用CPU或內(nèi)存最多的幾個(gè)進(jìn)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05centos7修改網(wǎng)卡后無(wú)法上網(wǎng)問(wèn)題解決過(guò)程
大家好,本篇文章主要講的是centos7修改網(wǎng)卡后無(wú)法上網(wǎng)問(wèn)題解決過(guò)程,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12wamp2.2e 64位 curl 開(kāi)啟不了的解決辦法
這篇文章主要介紹了wamp2.2e 64位 curl 開(kāi)啟不了的解決辦法,需要的朋友可以參考下2014-12-12CentOS下搭建Sendmail郵件服務(wù)器步驟詳解
本篇文章主要介紹了CentOS下搭建Sendmail郵件服務(wù)器步驟詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12VMware虛擬機(jī)中Ubuntu18.04無(wú)法連接網(wǎng)絡(luò)的解決辦法
這篇文章主要為大家詳細(xì)介紹了VMware虛擬機(jī)中Ubuntu18.04無(wú)法連接網(wǎng)絡(luò)的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Linux虛擬機(jī)ipaddr/ifconfig不顯示IP的解決方案(親測(cè)有效)
有時(shí)候經(jīng)常會(huì)出現(xiàn)之前明明好的,但是換了個(gè)網(wǎng)絡(luò)就查不到ip了,由于不知道原因,有的人會(huì)選擇重裝虛擬機(jī),還有的人開(kāi)始崩潰,本篇文章將徹底解決該問(wèn)題的出現(xiàn),需要的朋友可以參考下2023-09-09