Linux “ls” não lista nenhum arquivo

1

Eu tenho um dispositivo embutido com o wdlinux (White Dwarf 2.0). Eu posso acessar este linux usando ssh ou ftp.

Ontem eu realizei "updatedb 1 > / dev / null 2 > / dev / null" manualmente. (Será realizado como cron job todos os dias de manhã). Hoje o sistema linux se comporta de maneira estranha: (1) o comando "ls" não lista mais arquivos. (Se eu logar usando ftp, eu posso ver todos os arquivos) (2) O comando "netstat" também não mostra nada.

Acabei de executar "updatedb" sem nenhum argumento novamente. Depois disso, "ls" funcionou uma vez e depois não voltou a funcionar.

Agora estou totalmente confuso. Qualquer sugestão é apreciada.

    
por stanleyxu2005 16.07.2009 / 10:17

8 respostas

4

updatedb não está relacionado a ls. É usado para localizar. Verifique onde está localizado o ls usando o comando

which ls

ou

type ls

O que eu devo dizer que está em '/ bin / ls' e o alias do comando ls se ele existir. Tente o comando dir se estiver presente nesse Linux. Só para ver se alguém estragou o ls para criar algum tipo de backdoor ou o executável ls está corrompido. dir ainda pode estar funcionando perfeitamente. Se dir não estiver lá ou fornecer resultados estranhos, sugiro executar fsck no sistema de arquivos.

    
por 16.07.2009 / 10:43
6

Eles são arquivos ocultos? Se sim, tente:

ls -la
    
por 16.07.2009 / 10:25
1

Alguma chance de sua máquina ter sido invadida? É um pouco flagrante, mas eu vi ataques que desativam coisas como o netstat para se esconderem.

Você tem espaço livre em disco? (df -h)

    
por 17.07.2009 / 00:07
1

Você não mencionou qual sistema de arquivos está usando.

Se o diretório atual desaparecer, "ls" não mostrará nada. Por exemplo:

$ mkdir tmp
$ cd tmp
$ cp /etc/passwd /etc/group .
$ ls
passwd group

$ rm -rf  $(pwd)
$ ls
(empty)
$ mkdir $(pwd); cp /etc/passwd /etc/group $(pwd)
$ ls
(empty)
$ ls $(pwd)
passwd group
$ ls -lid . $(pwd)
(show different inodes)
$ cd $(pwd)
$ ls
passwd group

Para o netstat ter sucesso, acredito que você precisa ter o / proc montado.

Existe algum efeito colateral estranho na maneira como você executa o updatedb? Se isso for reproduzível, talvez você gostaria de executar o updatedb sem descartar a saída, especialmente stderr, para ver se você vê algo interessante?

    
por 21.07.2009 / 12:24
1

Execute find e veja se mostra alguma coisa. Se isso acontecer, algo está errado com o seu ls .

    
por 21.07.2009 / 12:35
0

Compare o resultado do seguinte comando se ls funcionar e, se não:

which ls

Se a saída mudar, algo está muito errado com o seu sistema. Se a saída for a mesma, provavelmente as permissões de arquivo estão erradas.

    
por 16.07.2009 / 10:26
0

Suspenda essa resposta por enquanto ... Estou tentando descobrir o que isso implica.
Arjan faz um comentário correto, você deve acertar um erro 'comando não encontrado' se a resolução do caminho falhar.

Old.
Muitas vezes, os linux incorporados não vêm com uma configuração de ambiente adequada e você pode estar executando sem nenhuma referência PATH . A primeira coisa a fazer deve ser,

echo $PATH

se isso não mostrar nada (que é o que eu suspeito), você precisa configurar o caminho corretamente antes de qualquer comando fora do shell ( echo é parte do shell) funcionará.

    
por 19.07.2009 / 12:01
0

Esse problema pode ser resolvido movendo o diretório para um novo diretório:

Exemplo: Eu tenho um diretório olddir / que contém arquivos foo.txt e bar.txt, digitando ls não mostra arquivos presentes

mv olddir/ newdir

agora, quando digito ls no novo diretório, aparecem foo.txt e bar.txt.

Você pode então mover newdir / back para olddir / se desejar e os arquivos estarão presentes

    
por 29.03.2018 / 15:05