For non-ASCII characters in file names, Git will output them in octal notation. For example:
> git ls-files
\"\\337.txt\"
If su
In Bash, you can use printf for this kind of purpose:
$ printf "\337.txt"
▒.txt
$ git rm `printf "\337.txt"` # this would pass the awkward filename to git
The problem is, obviously, that the shell doesn't perform octal escaping, neither does git. But printf
does.
Also, echo -e
can do octal escaping:
$ echo -e '\0337.txt'
▒.txt
But that usage is a bit discouraged, you should prefer printf
where you can.