Bash:文件名中包含utf8字符的cat文件

时间:2018-07-24 06:12:45

标签: bash git git-bash

我正在编写自己的bash脚本,并且文件名中的UTF8字符存在一些问题。

我的文件名为:../ahh/Nový textový dokument.txt

我收到此错误:

cat: '"../ahh/Nov\303\275 textov\303\275 dokument.txt"': No such file or directory

对于其他脚本,效果很好。

我的bash脚本片段:

git status -su | tr \\r \\n | while read -r line ;
do
    FILE=$(echo "$line" | awk '{$1 = ""; print substr($0,2)}')
    cat "$FILE"
done

1 个答案:

答案 0 :(得分:1)

如果您执行git statusgit ls-files,您可能会得到类似的信息:

$ git status 
A  "Nov\303\275 textov\303\275 dokument.txt"

这是因为默认情况下,git以加引号的八进制表示形式打印非ASCII文件名,可以使用以下命令禁用当前存储库:

git config core.quotepath off

然后:

$ git status -s
A  "Nový textový dokument.txt"

请查看此答案以获取更多详细信息:https://stackoverflow.com/a/22828826/1135424