本系列文章是把作者剛接觸和學(xué)習(xí)Linux時(shí)候的實(shí)操記錄分享出來(lái),內(nèi)容主要包括Linux入門(mén)的一些理論概念知識(shí)、Web程序、mysql數(shù)據(jù)庫(kù)的簡(jiǎn)單安裝部署,希望能夠幫到一些初學(xué)者,少走一些彎路。
注意:
Linux下區(qū)分大小寫(xiě);
Linux多用戶多線程;
Linux下每個(gè)文件和目錄都有訪問(wèn)權(quán)限;
踩坑記錄之Linux分卷解壓縮失敗問(wèn)題
環(huán)境:虛擬化服務(wù)器、CentOS 7、cat、tar
cat合并后文件大于源文件#、#cat合并后文件變大#、#cat合并文件#、#tar解壓縮分卷文件失敗#、#分卷解壓縮失敗#、#分卷解壓縮#
1.問(wèn)題描述
因?yàn)樵次募偭窟^(guò)大且碎小,為了加快傳輸速度,通過(guò)tar、split分卷壓縮后的文件pic00-04,在另一臺(tái)服務(wù)器上解壓縮時(shí),出現(xiàn)cat合并后的文件大于源分卷壓縮文件,即分卷壓縮文件pic00-04為700M、700M、700M、700M、200M,合并后,pic.tar.gz為6000M,幾乎是源文件的2倍大小,最終使用tar解壓縮pic.tar.gz失敗,出現(xiàn)錯(cuò)誤信息。
# cat pc* > pic.tar.gz #合并分卷帶下文件
# tar xvzf pic.tar.gz #解壓合并后的文件
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
2.問(wèn)題結(jié)論
先說(shuō)結(jié)論,折騰了好久,最后發(fā)現(xiàn)是命令別名的原因,氣的不行。在新建虛擬機(jī)服務(wù)器時(shí)執(zhí)行了腳本含有#alias cat='cat -v'內(nèi)容,即將cat -v定義成了cat,執(zhí)行cat時(shí)自帶-v參數(shù),平時(shí)用cat查看文件,也沒(méi)啥問(wèn)題,但是對(duì)合并文件產(chǎn)生無(wú)法描述的錯(cuò)誤,極其坑。咱也搞不懂為啥會(huì)用這么坑、這么不規(guī)范的別名,整個(gè)不一樣的也行啊,如ll='ls -lt'、cv='cat -v'。
3.問(wèn)題解決過(guò)程
(1)最初一直懷疑tar程序有問(wèn)題,重新虛擬化N多機(jī)器,測(cè)試過(guò)都可以,就我使用的那臺(tái)服務(wù)器不行。
(2)后來(lái)在測(cè)試過(guò)程中發(fā)現(xiàn)了cat前后文件大小不一致的情況,即合并后的文件大于源分卷壓縮文件,把問(wèn)題定位于cat命令問(wèn)題。
(3)再后來(lái)經(jīng)過(guò)多次測(cè)試,發(fā)現(xiàn)重啟完服務(wù)器后,就會(huì)出現(xiàn)上述問(wèn)題,不是我那臺(tái)服務(wù)器的特例。
(4)然后開(kāi)始檢查history,查看虛擬機(jī)都執(zhí)行過(guò)哪些命令,發(fā)現(xiàn)了y_cat.sh腳本,內(nèi)容為alias cat='cat -v',在重啟時(shí)會(huì)執(zhí)行該腳本。
# history
(5)查看所有命令別名
# alias
發(fā)現(xiàn)alias cat='cat -v',當(dāng)時(shí)還不確定是不是-v參數(shù)引起的問(wèn)題,決定去掉試一試
(6)刪除別名
# unalias cat
(7)重新執(zhí)行cat合并,tar解壓,正常,淚奔,蛋疼的無(wú)意義、不規(guī)范命令別名。
最后移除y_cat.sh腳本,確保再次重啟時(shí)不執(zhí)行。
IT小胖豆:初學(xué)者踩坑之路及過(guò)程分享,希望能夠幫到一些初學(xué)者,歡迎各位IT打工人,入坑討論-_-