本系列文章是把作者剛接觸和學習Linux時候的實操記錄分享出來,内容主要包括Linux入門的一些理論概念知識、Web程序、mysql數據庫的簡單安裝部署,希望能夠幫到一些初學者,少走一些彎路。
注意:
Linux下區分大小寫;Linux多用戶多線程;Linux下每個文件和目錄都有訪問權限;
踩坑記錄之Linux分卷解壓縮失敗問題環境:虛拟化服務器、CentOS 7、cat、tar#cat合并後文件大于源文件#、#cat合并後文件變大#、#cat合并文件#、#tar解壓縮分卷文件失敗#、#分卷解壓縮失敗#、#分卷解壓縮#
1.問題描述因為源文件總量過大且碎小,為了加快傳輸速度,通過tar、split分卷壓縮後的文件pic00-04,在另一台服務器上解壓縮時,出現cat合并後的文件大于源分卷壓縮文件,即分卷壓縮文件pic00-04為700M、700M、700M、700M、200M,合并後,pic.tar.gz為6000M,幾乎是源文件的2倍大小,最終使用tar解壓縮pic.tar.gz失敗,出現錯誤信息。
2.問題結論
# 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
先說結論,折騰了好久,最後發現是命令别名的原因,氣的不行。在新建虛拟機服務器時執行了腳本含有#alias cat='cat -v’内容,即将cat -v定義成了cat,執行cat時自帶-v參數,平時用cat查看文件,也沒啥問題,但是對合并文件産生無法描述的錯誤,極其坑。咱也搞不懂為啥會用這麼坑、這麼不規範的别名,整個不一樣的也行啊,如ll=‘ls -lt’、cv=‘cat -v’。
3.問題解決過程(1)最初一直懷疑tar程序有問題,重新虛拟化N多機器,測試過都可以,就我使用的那台服務器不行。(2)後來在測試過程中發現了cat前後文件大小不一緻的情況,即合并後的文件大于源分卷壓縮文件,把問題定位于cat命令問題。(3)再後來經過多次測試,發現重啟完服務器後,就會出現上述問題,不是我那台服務器的特例。(4)然後開始檢查history,查看虛拟機都執行過哪些命令,發現了y_cat.sh腳本,内容為alias cat=‘cat -v’,在重啟時會執行該腳本。
# history
(5)查看所有命令别名
# alias
發現alias cat=‘cat -v’,當時還不确定是不是-v參數引起的問題,決定去掉試一試(6)删除别名
# unalias cat
(7)重新執行cat合并,tar解壓,正常,淚奔,蛋疼的無意義、不規範命令别名。最後移除y_cat.sh腳本,确保再次重啟時不執行。
IT小胖豆:初學者踩坑之路及過程分享,希望能夠幫到一些初學者,歡迎各位IT打工人,入坑讨論-_-
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!