(解压失败后文件怎么办啊)

本系列文章是把作者刚接触和学习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失败,出现错误信息。

# cat pc* > pic.tar.gz #合并分卷带下文件# tar xvzf pic.tar.gz #解压合并后的文件gzip: stdin: not in gzip formattar: Child returned status 1tar: Error is not recoverable: exiting 电脑now2.问题结论

先说结论,折腾了好久,最后发现是命令别名的原因,气的不行。在新建虚拟机服务器时执行了脚本含有#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打工人,入坑讨论-_-


电脑