【解决】tar 命令执行压缩报 Can‘t translate pathname xxx/中文.pdf to utf-8

现象

linux 系统下执行tar命令进行目录压缩时报错:

Can't translate pathname  xxx/中文.pdf  to utf-8

分析

  • 可能是本地lang变量没有设置为utf-8

查看 locale变量

#执行命令
locale
#查询结果
LANG=c    #关键变量
LC_CTYPE="c"
LC_NUMERIC="c"
LC_TIME="c"
LC_COLLATE="c"
LC_MONETARY="c"
LC_MESSAGES="c"
LC_PAPER="c"
LC_NAME="c"
LC_ADDRESS="c"
LC_TELEPHONE="c"
LC_MEASUREMENT="c"
LC_IDENTIFICATION="c"
LC_ALL=

查看locale可以使用编码

# 执行命令 查看可以使用编码
locale -a
#结果如下,很多省略了,结果太多了
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8
zu_ZA.utf8

解决

持久解决

要想永久生效,就要修改 /etc/locale.conf 文件

vi  /etc/locale.conf
LANG="en_US.UTF-8"   #设置 LANG="en_US.UTF-8"
# 立即生效:
source /etc/locale.conf

临时解决

bash中直接执行

export LANG=en_US.UTF-8

总结

都是主语系环境 LANG引起的问题,修改完毕后,再执行tar 压缩中文名称的文件,就正常了。

猜你喜欢

转载自blog.csdn.net/yy4545/article/details/115957866