El comando ls no muestra la carpeta pero no puedo crearla porque la carpeta ya existe

8

Estoy usando Ubuntu 16.04.

Paso 1) Ingresé a mi rootcuenta de usuario.

Paso 2) Solía cdnavegar al directorio de inicio de una cuenta de usuario diferente.

Paso 3) Escribí lspara examinar el contenido de ese directorio.

Paso 4) El contenido volvió como vacío.

Paso 5) Escribí mkdir .sshpara crear un directorio.

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

Pregunta: ¿Por qué el directorio aparece vacío si existe una carpeta .ssh dentro de él?

- actualización -

Me conecté a root porque este es un servidor de prueba. Lo estoy creando y destruyendo repetidamente.

DR01D
fuente
usar llo lanols
phuclv
1
ll es solo un alias, así que mejor usa ls -alF
Dennis Nolte
2
Su proceso tiene un error importante en el paso 1.
Carreras de ligereza en órbita

Respuestas:

35

lspor sí solo no muestra directorios ocultos (los directorios y archivos ocultos son los que comienzan con un ., como .ssh)

Intenta usar ls -aen el directorio.

Desde la página de manual de ls:

-a, --todos

no ignore las entradas que comienzan con.

Como se señaló en los comentarios, los directorios y archivos "ocultos" no son técnicamente una cosa, solo hay código integrado en muchas herramientas comunes que se tratan .y ..con un significado especial, el resultado es que la .mayoría de las herramientas suelen considerarlo "oculto". La razón por la que usé este término es porque es común escucharlo referido de esa manera.

Además .y ..generalmente tienen un significado especial para la mayoría de los sistemas de archivos, indicando el directorio actual y el directorio padre, respectivamente.

Patricio
fuente
44
Tenga en cuenta que los "directorios ocultos" no son una cosa en sí, están ocultos porque ls tiene un código especial para no mostrarlos cuando comienzan con un punto.
PlasmaHH
2
@PlasmaHH Bueno, lsy muchas otras herramientas. Pero en principio tienes toda la razón; Por otra parte, incluso en sistemas que rastrean su linaje hasta MS-DOS y sus atributos de archivo, requiere un código especial para manejar el caso de archivos "ocultos" (que significa "archivos con el conjunto de atributos ocultos" en lugar de "archivos que han nombrado en este formulario en particular ").
un CVn
3
@ MichaelKjörling: en muchos de estos sistemas, sin embargo, es al revés. Allí, normalmente le pide al sistema que "me dé todo" y cuando desea mostrar archivos ocultos, dice "dame todo más las cosas ocultas" o "dame todas las cosas ocultas". Por lo tanto, está haciendo un esfuerzo adicional para ocultar archivos frente a un esfuerzo adicional para mostrar archivos ocultos también.
PlasmaHH
12
Dato curioso, la invención de archivos ocultos fue un error, lssolo se suponía que se escondía .y .., por lo tanto, agregaron código para ver si comenzaba con un punto
Ferrybig
44
Me preocupa la parte de "iniciar sesión como root" combinada con la aparente falta de familiaridad con * nixes. Sería muy fácil para OP destruir accidentalmente algo importante.
Shoover
4

En su paso 3, escriba ls -apara enumerar el contenido del directorio.

El archivo o directorio cuyo nombre comience .será ignorado por ls.

Bruce
fuente
0

.ssh es un directorio oculto, ya que comienza con un .

Para enumerar archivos y directorios ocultos, use en ls -alugar de solo ls.

Muhammed Sherief
fuente
1
.sshno es un archivo, es un directorio
Ferrybig
77
¿Cómo es esto algo más que la respuesta aceptada dada 8 horas antes, o la otra respuesta dada al mismo tiempo que la respuesta aceptada?
Colt
-2

"." está reservado para carpetas / archivos ocultos. lsde manera predeterminada no enumerará los archivos y directorios ocultos. ("." y ".." son dos directorios ocultos predeterminados en cualquier directorio). Para ver todos los archivos dentro de una carpeta, use ls -ao ls -al(si desea más detalles sobre cada archivo / carpeta.

Chintan Parikh
fuente
-4

Para crear el directorio, debe eliminar el directorio existente

Use rm -rf .ssh, eliminará el directorio

O si ya existe Puede usar cd .ssh

Manoj Malviya
fuente