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 .