Como dois arquivos em uma das minhas pastas podem ter o mesmo nome?

10

Eu baixei dois arquivos, eles foram salvos no mesmo nome de arquivo e depois eu os transferi com o scp para outro computador.

Por que eles não se tornaram um quando o segundo foi salvo?

    
por somethingSomething 15.08.2014 / 23:20

1 resposta

35

Talvez eles apenas procurem como se tivessem o mesmo nome.

Tente:

$ touch Stéphane Stéphane Stéphane\  St​éphane
$ ls -1
Stéphane
Stéphane
St​éphane
Stéphane 

Eles parecem muito iguais.

$ ls -1b
Stéphane
Stéphane
St​éphane
Stéphane\ 

Ligeiramente melhor. O caractere de espaço é sinalizado como \ (embora nem todas as implementações ls façam isso).

$ LC_ALL=C ls -1b
Ste41phane
St31phane
St31phane\ 
St20331phane

Agora estamos falando (todos os caracteres não-ASCII são renderizados como o valor octal de seus constituintes de byte)

Você também pode fazer isso, e isso funciona para qualquer entrada:

$ ls | LC_ALL=C sed -n l
Ste41phane$
St31phane$
St20331phane$
St31phane $

Aqui, o final das linhas é marcado com $ , o que facilita a localização do espaço à direita. No entanto, isso não ajudará a localizar um arquivo chamado Stéphane<newline>Stéphane

$ ls | perl -Mopen=locale -MUnicode::UCD=charinfo -lpe '
       s/[^-7]/"<".charinfo(ord$&)->{name}.">"/ge'
Ste<COMBINING ACUTE ACCENT>phane
St<LATIN SMALL LETTER E WITH ACUTE>phane
St<ZERO WIDTH SPACE><LATIN SMALL LETTER E WITH ACUTE>phane
St<LATIN SMALL LETTER E WITH ACUTE>phane<SPACE>

Torna mais claro o que aconteceu.

Veja também esta outra resposta para mais sobre o assunto.

    
por 15.08.2014 / 23:57