No momento em que escrevo isto, você não descartou os efeitos em $LS_OPTIONS
. O GNU ls tem algumas opções de ignorar arquivos, e ls -I foo -a
ainda ignora foo
. Mas o resto da minha resposta assume que você obtém os mesmos resultados sem $LS_OPTIONS
.
A linha total 4
não é, de fato, surpreendente. Esse é o número total de blocos usados por .
e ..
. Se .
estiver vazio e ..
for pequeno e em um sistema de arquivos cujo tamanho de bloco seja igual a 4 ls (o que é comum: o GNU ls é padronizado para blocos de 1kB e o ext [234] frequentemente usa blocos de 4kB) o total esperado é 0 + 1 * 4 = 4.
Há algo incomum, mas não inédito, acontecendo com o sistema de arquivos em que /you/are/here
está ativo. Quando você solicita o conteúdo de /you/are/here
(com opendir()
e readdir(3)
), o sistema de arquivos responde apenas com .
e ..
; ainda assim, quando você assume que /you/are/here/somedir
existe, você é informado de que existe. Isso é surpreendente, mas possível comportamento.
Uma possível, mas altamente improvável, explicação é um demônio (como em demônio de Maxwell , não como em programa daemon ) que move somedir
para o lugar apenas quando você o acessa e o move para fora do caminho quando você lista o diretório. Assim, a peculiaridade que você observa pode ser causada por um programa comum que, por acaso, faz as suposições certas, não indica nada de errado com o sistema operacional.
Na verdade, o sistema operacional provavelmente está se comportando de maneira peculiar. Um culpado comum é um sistema de automontagem. A maneira como um sistema de montagem automática funciona normalmente é algo assim:
-
Um diretório, digamos /you/are/here
, é configurado como um local para pontos de montagem. Um sistema de arquivos de propósito especial (possivelmente chamado autofs
) é montado lá.
-
Quando você tenta acessar uma entrada em /you/are/here
, digamos /you/are/here/somedir
, o driver do sistema de arquivos tenta montar o sistema de arquivos somedir
. Por exemplo, ele pode procurar por uma linha como somedir = /dev/foo
ou somedir = server:/loca/tion
em seu arquivo de configuração e montar o dispositivo indicado ou a localização do NFS como /you/are/here/somedir
.
-
Quando você listar o diretório /you/are/here
, verá um subdiretório para cada sistema de arquivos atualmente montado.
-
Quando você para de usar /you/are/here/somedir
, talvez após um atraso, o automounter desmontará somedir
. Portanto, somedir
não aparece mais na listagem de /you/are/here
.