Identificando arquivos com caracteres especiais em seu nome em um terminal

2

Algo estranho aconteceu hoje.
Eu estava conectado a um servidor HP com putty e vi dois arquivos com o mesmo nome exato:

-rw-r--r-- 1 hemantj 3368 Apr 1 12:47 test
-rw-r--r-- 1 hemantj 20 Sep 1 12:47 test

Foi muito estranho porque você não pode ter arquivos com o mesmo nome.

Mais tarde, quando eu estava conectado com o FileZilla, vi que havia alguns especiais. caractere no final do segundo nome de arquivo.

Minha pergunta: é possível destacar caracteres especiais no nome do arquivo em um terminal?

Estou conectado ao HP-UX e meu shell é tcsh e ksh.

EDITAR:

Obrigado pela sua resposta, mas acho que .stackexchange.com / questions / 2182 / identification-files-with-spacial-characters-in-its-name-in-terminal / 2188 # 2188 "> solução é a mais simples e portátil.
+1 para todos vocês - aprendi muito com suas respostas

    
por Hemant 17.09.2010 / 11:46

4 respostas

4

Eu uso isso:

ls -l | less 
    
por 17.09.2010 / 14:42
4

O fato de você estar no HP-UX é realmente o problema. Com as ferramentas GNU disponíveis na maioria das distribuições Linux, existem várias opções.

Existe ls -q , que exibe caracteres especiais como '?'. Ou -b , que exibe códigos octal.

Outra opção é ls | cat -v .

Também find . -type f -ls , que exibe usando códigos de escape por padrão.

Alguns deles podem funcionar no HP-UX, mas eu não sei.

    
por 17.09.2010 / 14:07
2

Se você tiver sorte o suficiente para ter od,

ls -1 | od -xC

ls -1 imprime os nomes dos arquivos, separados por uma nova linha. od -xC imprime o texto de entrada em hexadecimal, com caracteres ascii reconhecíveis exibidos em cada octeto.

Exemplo de saída para três arquivos, denominados 1, 2, 3:

0000000    310a    320a    330a
           1  \n   2  \n   3  \n
0000006

Exemplo de saída para dois arquivos, denominados 1 e '\ n2':

0000000    0a32    0a31    0a00
          \n   2  \n   1  \n
0000005

Observe que há três novas linhas para dois arquivos e lexograficamente, "\ n2" classificado antes de "1".

    
por 17.09.2010 / 14:34
1

isso não é um real destaque, mas pode ajudar a identificar os caracteres:

# find . -type f -exec sh -c "hexdump -C <<<'{}'" \;

pode ser melhor construído. ensina-me;)

    
por 17.09.2010 / 12:20

Tags