Como criar um arquivo com o nome especificado na codificação ASCII?

3

Eu quero criar um arquivo chamado ascii 007, que é o símbolo do sino, que não é imprimível. Eu tentei nano $'cat ?7' , mas isso acabou de criar um arquivo chamado? %code% imprime o conteúdo do teste, que eu coloquei no arquivo.

Então, como eu crio um arquivo, com um nome definido pela codificação ascii e não claramente escrito?

    
por Vorac 01.08.2013 / 14:06

1 resposta

5

Tudo provavelmente funcionou como você esperava, mas você foi enganado por dois fenômenos diferentes:

  • ls e alguns outros utilitários exibem ? para caracteres não imprimíveis por padrão
  • ? é um glob que corresponde a um único caractere

Isso resulta no seguinte comportamento:

$ echo foo > $'
$ printf '<%q>\n' *
<$'\a'>
$ ls -lb
total 0
-rw-r--r-- 1 chris chris 0 Aug  1 14:20 \a
7' $ ls ? $ cat ? foo

Então parece que temos um arquivo que é literalmente chamado de ? , certo? Na verdade, isso é apenas uma feliz coincidência dos dois fenômenos acima - o arquivo ainda é chamado de ^G :

$ echo foo > $'
$ printf '<%q>\n' *
<$'\a'>
$ ls -lb
total 0
-rw-r--r-- 1 chris chris 0 Aug  1 14:20 \a
7' $ ls ? $ cat ? foo

Provavelmente tudo funcionou como você esperava, apesar do que apareceu imediatamente para indicar que o arquivo foi chamado literalmente de ? .

    
por 01.08.2013 / 14:16