![背景 :](https://linux22.com/image/9249/%E8%83%8C%E6%99%AF%20%EF%BC%9A.png)
背景 :
如果您不感兴趣,可以跳过本节。
我通常sudo dd if=/dev/sdc1 of=~/Document/Cell\ Phone\ Files/MicroSD_Backup/$(date +%y-%m-%d).img
用读卡器将 MicroSD 卡连接到电脑后,通过命令备份手机上的 MicroSD 卡。
我的 MicroSD 卡上只有一个分区,其文件系统是fat32
.它的默认编码是GBK
.因此,中文文件名采用 GBK 编码,而英文文件名采用 ASCII 编码。
当我制作完MicroSD卡的最新镜像后,我想对其进行格式化并删除最新镜像中的一些无用文件。
描述 :
img文件包含gbk文件名和ascii文件名的文件,而我的电脑默认编码是UTF-8。我想将这些 GBK 文件名转换为 UTF-8,但我担心那些具有 ASCII 文件名的文件convmv --notest -f gbk -t utf-8 *
在镜像文件挂载目录中运行命令时会变成乱码。
问题 :
是否可以找到那些文件名为 gbk 的文件,并将它们的路径通过管道传递给命令convmv
?因此,那些具有 ASCII 文件名的文件可以保留下来。
答案1
感谢@SiyuanRen 的建议。
convmv
可以处理保持ascii不变的乱码情况,避免出现乱码。
在这种情况下命令convmv -f gbk -t utf8 *
运行良好。
顺便说一句,另一种解决方案是-o loop,utf8
在挂载图像文件时使用,或者只使用udisksctl
它可以自动处理文件名编码。
PS整个使用方法udisksctl
是
# losetup --fine --show /path-to-img-file
$ udisksctl -b /the-loop-file-showed-after-former-command
然后,输入您的帐户密码,它会显示它安装在哪里/