Linux壓縮/解壓縮,詳解(tar,gz,bz2,xz,zip,rar)
Linux壓縮/解壓縮,詳解(tar,gz,bz2,xz,zip,rar)
tar
//tar壓縮/解壓縮
//tar [主選項+輔助項] file/folder
//主選項-x,-c,-r,-u,-t
//輔助項-z,-j,-Z,-f,在“-f”選項之后不能再跟任何其他選項。-v是顯示過程,一般不顯示吧..
另:在linux的命令中,有些命令的選項之前是有橫杠的,比如ls -a,有些是沒有橫杠的,比如tar xvf這樣的,這到底有什么區別呢?
可以這樣說,這個和程序腳本的設計風格有關,是腳本自己設定的,一般來講,有橫杠的是System V風格,沒有橫杠的是BSD風格
此外,橫杠后面跟一個字符的選項用單橫杠,后面跟一個單詞的用雙橫杠。比如用--help這樣的選項,如果寫成了-help,那就變成要分別找命令的-h, -e, -l, -p選項了,而--help只會找help這個選項。
tar -rf FileName.tar *.gif //將所有.gif的文件添加到all.tar的包里面去。-r表示添加文件
tar -uf FileName.tar logo.gif //更新原來tar包all.tar中logo.gif文件,-u表示更新文件
tar -tf FileName.tar //列出all.tar包中所有文件,-t是列出文件的意思
tar(.tar)
tar -xf FileName.tar //解壓all.tar包中所有文件,-x表示解壓
tar -xf FileName.tar -C DirName //解壓到指定文件夾DirName
tar -cf FileName.tar *.jpg//DirName //將所有.jpg或DirName目錄的文件打成一個名為all.tar的包。-c是表示產生新的包 ,-f指定包的文件名。DirName
gzip(.gz)
gunzip FileName.gz //解壓.gz
gzip -d FileName.gz //解壓.gz
gzip FileName DirName //壓縮為.gz
(tar.gz,.tgz)
tar -xzf FileName.tar.gz //解壓.tar.gz
tar -czf FileName.tar.gz DirName //壓縮為.tar.gz
bzip2(.bz2)
bzip2 -d FileName.bz2 //解壓.bz2
bunzip2 FileName.bz2 //解壓.bz2
bzip2 -z FileName //壓縮為.bz2
(.tar.bz2)
tar -xjf FileName.tar.bz2 //解壓.tar.bz2,bz2為一個壓縮能力更強的壓縮程序
tar -cjf FileName.tar.bz2 DirName //壓縮為.tar.bz2
bzip(.bz)
bzip2 -d FileName.bz //解壓.bz
bunzip2 FileName.bz //解壓.bz
壓縮:未知
(.tar.bz )
tar xjf FileName.tar.bz //解壓.tar.bz
tar cjf FileName.tar.bz DirName //壓縮為.tar.bz
//xz解壓/壓縮
xz -d xxx.xz //解壓xz文件
xz -z abc //壓縮文件成xz
tar -Jxvf filename.tar.xz //大寫J
compress(.Z)
uncompress FileName.Z //解壓.Z
compress FileName DirName //壓縮為.Z
tar -xZf FileName.tar.Z //bzip2,解壓一個tar.Z(tar調用uncompress)
tar -cZf FileName.tar.Z //壓縮為bzip2
事實上, 從1.15版本開始tar就可以自動識別壓縮的格式,故不需人為區分壓縮格式就能正確解壓
tar -xvf filename.tar.gz
tar -xvf filename.tar.bz2
tar -xvf filename.tar.xz
tar -xvf filename.tar.Z
zip(.zip)
unzip FileName.zip //解壓.zip
zip FileName.zip DirName //壓縮為.zip
zip -q -r data.zip /home/data //將/home/data這個目錄下的所有文件打包壓縮為當前目錄下的data.zip,-r遞歸,-q靜默...
//如果現在在/home 這個目錄下,則如下zip -q -r data.zip data
//如果在/home/data 這個目錄下,zip -q -r data.zip *
rar(.rar) //安裝:sudo wget https://www.rarlab.com/rar/rarlinux-x64-5.9.0.tar.gz,tar -zxf rarlinux-5.9.0.tar.gz,cd rar,make,make install...
rar x FileName.rar //解壓.rar,x是解壓
rar a FileName.rar DirName //壓縮為.rar,a是添加壓縮
rar(rar/unrar/7zip)
//sudo apt-get install rar
//sudo apt-get install unrar
//sudo apt-get install p7zip*
unrar x xxx.rar path/to/yyy //將xxx.rar里的文件解壓到yyy文件夾下。
//關于命令e :去掉路徑解壓,路徑可以指定具體的,如果rar文件里有文件夾,將會忽略文件夾而將具體的所有文件全部釋放到指定目錄里
//關于命令x : 全路徑解壓,路徑可以具體指定,不會忽略文件夾,而是將文件夾釋放出來
unrar e不好用啊?用 rar x examples.rar..
7za x FileName.7z -r -o./ //x代表解壓縮文件,-r表示遞歸解壓縮所有的子文件夾,-o是指定解壓到的目錄,-o后是沒有空格的,直接接目錄。這一點需要注意。
7za a -t7z -r FileName.7z DirName //a代表添加文件/文件夾到壓縮包,-r表示遞歸所有的子文件夾
//-t 是指定壓縮類型,這里定為7z,可不指定,因為7za默認壓縮類型就是7z。7za不僅僅支持.7z壓縮格式,還支持.tar.bz2等壓縮類型的。如上所述,用-t指定即可。
目錄路徑問題
如/etc這些,都是絕對路徑(/xxx);目錄名不能使用/xxx,因為是絕對路徑的某目錄才行,也不能使用./,會被識別為.去打包..
會報錯“從成員名中刪除開頭的/”,造成該問題的原因是因為使用相對路徑和絕對路徑引起的。另外還有一種解決方法是,使用相對路徑:etc/
源碼安裝(.tar、tar.gz、tar.bz2、tar.Z)
首先解壓縮源碼壓縮包,通過tar命令來完成,然后進入到解壓出的目錄中,建議先讀一下README之類的說明文件,因為此時不同源代碼包或者預編譯包可能存在差異
然后建議使用ls -F –color或者ls -F命令(實際上我的只需要 l 命令即可)查看一下可執行文件,可執行文件會以*號的尾部標志。
一般依次執行
sudo wget http://xxx.com.xxx.tar.gz
tar xx.tar.gz
cd xx/
./configure
make
sudo make install

浙公網安備 33010602011771號