之所以出现乱码是因为所压缩的文件中,有的文件是以中文命名。而在windows下中文的编码一般为gbk,而linux下中文的编码一般为utf8,所以在windows下正常打开的文件,到linux下很可能会出现乱码。

解决办法为:使用命令iconv对文件内容编码进行转换。例如我有一个文件"linux常用命令"在windows下打开正常,而在linux下打开则会乱码,办法为在终端输入: 

iconv -f gbk -t utf8 inputfile > outputifile

注意:outputfile不能与inputfile的名字相同。

 之后再打开"outputfile"这个文件,该文见的乱码问题就解决了。

转换完格式以后需要批量的重命名:

  for i in `ls`; do mv $i $(sed  's/}//' <<< $i); done   


此时需要注意一个重要概念, <<< 意为将后面的内容作为前面命令的标准输入