统信UOS系统,linux
有root权限,我想写个shell脚本修改ip地址。
经过查询得知,只需要修改
/etc/NetworkManager/system-connections/下的一个文件即可。
但是我打开该目录,发现那个文件是:''$'\346\234\211\347\272\277\350\277\236\346\215\245''.nmconnection'
我操作了一下,
在该目录使用vim 通过Tab键,打一个引号’然后补全,可以补出来 多个■的文件名,我进去编辑。确实可以修改IP
现在我想通过脚本修改,就要在脚本里写这个路径,但是这个文件名怎么都写不对(毕竟没有tab),提示找不到该文件。
请问我如何在脚本里定位这个文件呢?通过文件名可以吗?
这样子的文件名是为什么呀,语言不对吗?
2个方向
env | grep LANG
设置一下编码,export LANG=zh_CN.UTF-8
你这情况应该是文件是在Windows系统下创建的,文件名编码默认用的是GBK。上传到Linux后,因为Linux默认的文件名编码是UTF8导致的中文文件名乱码。可以用一个命令行工具去转码一下文件名 工具名称:convmv 如果此工具没有安装的话,可以用 sudo apt install convmv 命令安装 一下。
用法:convmv -f 源编码 -t 新编码 [选项] 文件名
-f enc 源编码
-t enc 新编码
-r 递归处理子文件夹
-i 交互文向转换
--list 显示所有可用编码
--nosmart 如果是utf8文件,忽略
--notest 直接转换不测试
--replace 文件相同直接替换
--unescape 可以做一下转义,比如把%20变成空格
--upper 全部转换成大写
--lower 全部转换成小定
举例:convmv -f GBK -t UTF-8 --notest *
将当前文件夹下的所有文件名称由GBK编码更改为utf-8
linux中文文件名乱码的解决思路:
1、下载并安装“fonts-chinese-3.02-12.el5.noarch.rpm”和“fonts-ISO8859-2”语言包;2、修改/etc/sysconfig/i18n;3、重启即可。
除了上面回答的各种外,
有没试过用终端软件(例如:xshell)去连接去查看看,因为创建文件的编码问题,会看到这样的,
如果能用终端软件看到正常的话,你就可以复制去notepad++这类的MD软件中,然后,重新编写一个文件去UOS里面