繁体   English   中英

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

[英]Bash: cat file with utf8 characters in filename

我正在编写自己的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

如果执行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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM