'ls' mostrando dois arquivos idênticos em um diretório

12

Então, de alguma forma, o comando ls parece estar mostrando dois arquivos idênticos em um diretório. Eu certamente não estou fazendo algo aqui.

Veja

$ ls -Blah /System/Library/LaunchDaemons
total 32                                                              
drwxr-xr-x  266 root  wheel   8.8K Jun 18 10:41 .
drwxr-xr-x   79 root  wheel   2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r--    1 root  wheel   715B Jun 18 10:36 tftp.plist
-rw-r--r--    1 root  wheel   715B Jun 18 10:35 tftp.plist

Eu posso mover, renomear, editar etc. um dos arquivos, mas o outro nem parece estar lá. A conclusão da guia bash mostra até arquivos idênticos.

Por exemplo, digitando o seguinte e pressionando TAB

$ sudo mv /System/Library/LaunchDaemons/tftp
tftp.plist   tftp.plist

Se eu renomear o arquivo:

$ sudo mv /System/Library/LaunchDaemons/tftp.plist /System/Library/LaunchDaemons/tftp.plist.derp

A conclusão da tabulação ainda mostra o arquivo:

$ ls -Blah /System/Library/LaunchDaemons/tf
tftp.plist       tftp.plist.derp 

Mas o arquivo original não modificado não aparece para 'ls'

$ ls -Blah /System/Library/LaunchDaemons/tftp.plist
ls: /System/Library/LaunchDaemons/tftp.plist: No such file or directory

No entanto, se eu listar os arquivos como no primeiro snippet de código acima, observe:

$ ls -Blah /System/Library/LaunchDaemons
total 32                                                              
drwxr-xr-x  266 root  wheel   8.8K Jun 18 10:41 .
drwxr-xr-x   79 root  wheel   2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r--    1 root  wheel   715B Jun 18 10:35 tftp.plist
-rw-r--r--    1 root  wheel   715B Jun 18 10:36 tftp.plist.derp

Alguma idéia do que está acontecendo aqui e como posso me livrar desse arquivo fantasma?

Este é um mac executando o OS X se isso adicionar alguma informação ao problema. Eu estava usando sed neste arquivo antes que a loucura começasse.

Editar

Eu usei os dois sinalizadores blah e Blah ls sem nenhuma alteração na saída aparente.

Editar 2

Informações adicionais solicitadas nos comentários:

$ echo tftp* | xxd
0000000: 7466 7470 2e70 6c69 7374 2020 7466 7470  tftp.plist  tftp
0000010: 2e70 6c69 7374 2e64 6572 700a            .plist.derp.

Moar:

$ printf '<%q>\n' tftp*
<tftp.plist\ >
<tftp.plist.derp>

Ainda mais:

$ locale                                                                                                                      │-rw-r--r--    1 root  wheel   495B Sep  9  2014 org.net-snmp.snmpd.plist
LANG="en_US.UTF-8"                                                                                                            │-rw-r--r--    1 root  wheel   498B Jan 15 23:15 org.ntp.ntpd.plist
LC_COLLATE="en_US.UTF-8"                                                                                                      │-rw-r--r--    1 root  wheel   1.0K Nov 13  2014 org.openldap.slapd.plist
LC_CTYPE="en_US.UTF-8"                                                                                                        │-rw-r--r--    1 root  wheel   572B Sep  9  2014 org.postfix.master.plist
LC_MESSAGES="en_US.UTF-8"                                                                                                     │-rw-r--r--    1 root  wheel   238B Sep  9  2014 shell.plist
LC_MONETARY="en_US.UTF-8"                                                                                                     │-rw-r--r--    1 root  wheel   941B Sep  9  2014 ssh.plist
LC_NUMERIC="en_US.UTF-8"                                                                                                      │-rw-r--r--    1 root  wheel   260B Sep  9  2014 telnet.plist
LC_TIME="en_US.UTF-8"                                                                                                         │-rw-r--r--    1 root  wheel   715B Jun 18 10:36 tftp.plist
LC_ALL="en_US.UTF-8"   
    
por datUser 18.06.2015 / 17:04

1 resposta

21

Você tem espaços em branco à direita ou um sistema de arquivos corrompido.

Tente

for i in tftp.plist*
do
    echo "'$i'"
done

Isso deve produzir algo como

'tftp.plist'
'tftp.plist '

observe as aspas e o espaço extra. Se ele der exatamente a mesma coisa duas vezes, você provavelmente tem um sistema de arquivos corrompido.

Tente

ls -i tftp.plist*

isto lhe dará os números de inode do arquivo. Se forem iguais, você terá o mesmo arquivo duas vezes no diretório. Isso seria Really Bad (tm), e você deve executar o fsck o mais rápido possível. Mas duvido que esse seja o problema; é mais provável que seja a coisa do espaço em branco.

    
por 18.06.2015 / 17:22

Tags