¿Qué tienen de especial los directorios cuyos nombres comienzan con un punto?


25

Me preguntaba cuál era la diferencia entre estos dos:

~/somedirectory/file.txt

y

~/.somedirectory/file.txt

Es realmente difícil preguntar esto en Google, ya que no sabía cómo explicar .cuando ni siquiera sabía cómo llamarlo. Pero, ¿alguien puede describir la diferencia entre incluir el punto y excluirlo?

Respuestas:


18

Bajo sistemas similares a Unix, todos los directorios contienen dos entradas .y.. , que representan el directorio mismo y su padre respectivamente. Estas entradas no son interesantes la mayoría de las veces, por lo que las lsoculta y los comodines de shell como *no las incluyen. De manera más general, los lscomodines ocultan todos los archivos cuyo nombre comienza con a .; esta es una manera sencilla para excluir .y ..y permiten a los usuarios ocultar otros archivos de listados. Aparte de ser excluido de los listados, no hay nada especial en estos archivos.

Unix almacena los archivos de configuración por usuario en el directorio de inicio del usuario. Si todos los archivos de configuración aparecieran en las listas de archivos, el directorio de inicio estaría abarrotado de archivos que a los usuarios no les importan todos los días. Entonces, los archivos de configuración siempre comienzan con un .: típicamente, el archivo de configuración para la aplicación Foo se llama algo así como .fooo .foorc. Por esta razón, los archivos de configuración del usuario a menudo se conocen como archivos de puntos .


1
"En términos más generales, lsy comodines ocultan todos los archivos cuyo nombre comienza con una ., lo que es una forma sencilla para excluir .y ..y permiten a los usuarios ocultar otros archivos de anuncios." Esto suena como el siguiente: El concepto de ocultar archivos / directorios que comienzan con un punto realmente parece ocultarse . ... Pero más tarde, las personas se dieron cuenta de que poder ocultar algunos archivos / directorios tiene un valor y, por lo tanto, comenzaron a poner un punto al comienzo de los archivos que desean ocultar. ¿Es ese realmente el caso o solo una especulación?
Utku

3
@Utku En realidad, fue al revés, al menos al principio: el desarrollador original tenía la intención de esconderse solo .y ..cometió un error . Sin embargo, es posible que se disuadiera de arreglarlo porque algunos usuarios lo encontraron útil, y la razón por la cual los archivos de configuración de usuario comienzan .definitivamente es para que no saturen la salida del lsdirectorio de inicio. Creo que tenemos una pregunta sobre esto aquí, pero no puedo encontrarla, puede que se haya confundido.
Gilles 'SO- deja de ser malvado'

15

Los directores que comienzan con un punto .se consideran ocultos. Eso significa:

  • ~/somedirectoryy ~/.somedirectoryson directorios diferentes. Es decir, si ~/somedirectoryexistió y usted lo hizo mkdir ~/.somedirectory, no fallará con un File Existsmensaje.

  • El lscomando no mostrará los directorios que comienzan con.

  • El ls -amostrará ambos directorios


66
ls -A muestra archivos y directorios que comienzan con. pero no incluye el. y .. entradas.
Juliano

7

Para obtener detalles sobre el sistema de archivos Unix, consulte el estándar . Específicamente, los archivos de puntos se usan para archivos de configuración en un directorio de usuarios, y si un programa tiene más de uno, debe colocarlos en un directorio de puntos.

Esto oculta los archivos del usuario, a menos que quieran encontrarlos . De esa forma no se interponen, y las herramientas no se meten con ellos accidentalmente.


4

El líder "." en un directorio o nombre de archivo hace que ese directorio o archivo se oculte al hacer un lscomando.


1
Puede ver todos los archivos que comienzan con "." con ls -a.
Sardathrion - Restablece a Monica el

1

Como ya dijo @DaveNay, ese período hará que el archivo o directorio esté oculto.

Para su segunda pregunta implícita, así es como lo busca en google:

Simplemente escriba en el cuadro de búsqueda: período de Linux antes del nombre

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.