我有许多文件,如$'\351'
和$'\346'
。我还没想出如何在bash上引用这些文件。如何使用mv
和sed
更改名称?
当我运行ls
时,例如,出现的其中一个文件显示为:
'根'$'\346''%8B'$'\240''.html'
在这种情况下,大多数用户都希望使用convmv
来转换此类文件名的编码。
但是,由于您并不真正了解或关心原始文件名应该是什么,只是想要一个可逆的转换以使名称更容易处理,您可以将所有文件重命名为其字节的hexdump:
export LC_ALL=C
for f in *
do
mv -- "$f" "$(printf '%s' "$f" | od -t x1 -An | tr -cd 'a-f0-9')"
done
这将是例如把文件'根'$'\346''%8B'$'\240''.html'
变成e6a0b9e6253842a02e68746d6c