Tente isto:
find "$(pwd)" -type d | while read -r D; do ls -lb "${D}"; done
Com apenas ls
, tudo o que você verá no bash é um ?
para um nome de arquivo igual a "\ n".
Além disso, -print0 | xarg -0
pode ser necessário nesses casos, e um $D
sem aspas, quando $ D contiver espaço em branco, provavelmente causará problemas.
$ man ls
excerpt:
-b, --escape print C-style escapes for nongraphic characters -l use a long listing format
O material imprudente:
Exemplo:
$ rm "$(echo -en "\r")"
- permite a remoção de um arquivo com um único retorno de carro (CR) como nome.
E, claro, se você quiser mexer com isso:
$ echo "TEST" >"This is a filename with a CR _$(echo -en "\r")_here"
... cria um arquivo.
$ rm "This is a filename with a CR _$(echo -en "\r")_here"
... para removê-lo.