O comando ls não mostra a pasta, mas não consigo criá-la porque a pasta já existe

8

Estou usando o Ubuntu 16.04.

Etapa 1) Entrei na minha rootconta de usuário.

Etapa 2) Eu costumava cdnavegar para o diretório inicial de uma conta de usuário diferente.

Etapa 3) Digitei lspara examinar o conteúdo desse diretório.

Etapa 4) O conteúdo voltou como vazio.

Etapa 5) Digitei mkdir .sshpara criar um diretório.

Resultado) mkdir: cannot create directory '.ssh': File exists

Pergunta: Por que o diretório está listado como vazio se uma pasta .ssh existe dentro dele?

- atualização -

Eu entrei na raiz porque este é um servidor de teste. Estou criando e destruindo repetidamente.

DR01D
fonte
use llor la, not #ls
phuclv 30/11
1
ll é apenas um pseudônimo, então use ls -alF
Dennis Nolte
2
Seu processo possui um erro grave na etapa 1.
Lightness Races in Orbit

Respostas:

35

lspor si só não mostra diretórios ocultos (diretórios e arquivos ocultos são aqueles que começam com a ., como .ssh)

Tente usar ls -ano diretório

Na página de manual ls:

-a, --all

não ignore as entradas iniciadas por.

Como observado nos comentários, diretórios e arquivos "ocultos" não são tecnicamente uma coisa, há apenas código incorporado a muitas ferramentas comuns que tratam .e ..com significado especial, o resultado sendo que .geralmente é considerado "oculto" pela maioria das ferramentas. A razão pela qual usei esse termo é porque é comum ouvi-lo referir-se a essa maneira.

Adicionalmente .e ..geralmente tem um significado especial para a maioria dos sistemas de arquivos, indicando o diretório atual e o diretório pai, respectivamente.

Patrick
fonte
4
Observe que "diretórios ocultos" não são algo em si, eles estão ocultos porque o ls possui um código especial para não mostrá-los quando eles começam com um ponto.
PlasmaHH
2
@PlasmaHH Bem, lse um monte de outras ferramentas. Mas, em princípio, você está absolutamente certo; por outro lado, mesmo em sistemas que rastreiam sua linhagem até o MS-DOS e seus atributos de arquivo, é necessário um código especial para lidar com o caso de arquivos "ocultos" (o que significa "arquivos com o conjunto de atributos ocultos" em vez de arquivos que nomearam neste formulário em particular ").
um CVn 29/11
3
@ MichaelKjörling: em muitos desses sistemas, é o contrário. Lá você normalmente pede ao sistema para "me dar tudo" e quando você deseja exibir arquivos ocultos você diz "me dá tudo mais o material oculto" ou "me fornece todo o material oculto". Por isso, está fazendo um esforço extra para ocultar arquivos versus um esforço extra para exibir arquivos ocultos também.
PlasmaHH #
12
Curiosidade, a invenção de arquivos ocultos foi um erro, lssó devia esconder .e .., por isso, eles acrescentaram código para ver se ele começou com um ponto
Ferrybig
4
Estou preocupado com a parte "logado como root" combinada com a aparente familiaridade com * nixes. Seria muito fácil para o OP destruir acidentalmente algo importante.
shoover
4

Na sua etapa 3, digite ls -apara listar o conteúdo do diretório.

O arquivo ou diretório cujo nome começa com .será ignorado por ls.

Bruce
fonte
0

.ssh é um diretório oculto, pois começa com um .

Para listar arquivos e diretórios ocultos, use em ls -avez de apenas ls.

Muhammed Sherief
fonte
1
.sshnão é um arquivo, é um diretório
Ferrybig 29/11
7
Como isso é algo mais do que a resposta aceita dada 8 horas à frente ou a outra resposta dada ao mesmo tempo que a resposta aceita?
Colt
-2

"." está reservado para pastas / arquivos ocultos. lspor padrão, não listará os arquivos e diretórios ocultos. ("." e ".." são dois diretórios ocultos padrão em qualquer diretório). Para visualizar todos os arquivos dentro de uma pasta, use ls -aou ls -al(se desejar obter mais detalhes sobre cada arquivo / pasta.

Chintan Parikh
fonte
-4

Para criar o diretório, você precisa remover o diretório existente

Use rm -rf .ssh para remover o diretório

Ou, se já existir, você pode usar cd .ssh

Manoj Malviya
fonte