Git: how to specify file names containing octal notation on the command line
encoding, git, notation, octal
Solution
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.
Problem
For non-ASCII characters in file names, Git will output them in octal notation. For example: ``` > git ls-files "\337.txt" ``` If such a byte sequence does not represent a legal encoding (for the command line's current encoding), I'm not able to enter the corresponding String on command line. How can I still invoke Git commands on these files? Obviously, using the String which is displayed by `git ls-files` does not work: ``` > git rm "\337.txt" fatal: pathspec '337.txt' did not match any files ``` Tested on Windows, with msysgit 1.7.10 (git version 1.7.10.msysgit.1)