¿Qué significan "." Y ".." cuando están en una carpeta?


34

cuando solía ls -aver archivos ocultos en la carpeta, había 2 archivos ocultos creados por defecto, ¿cuál es el significado de estos dos archivos .y ..?

ls -a

Produce

.  ..

Los uso mucho cuando lo hago, ls -laya que me mostrará los permisos y la propiedad del directorio en el que estoy y el directorio sobre el que estoy.
Marco Ceppi

No tengo suficiente representante aquí para votar para cerrar, pero he marcado esta pregunta, ya que es una pregunta que se puede responder en 3 segundos buscando en Google (y porque hubo una discusión reciente sobre preguntas que son demasiado fáciles en SO blog).
zzzzBov

1
^ zzzzBov Gracias en español por su generosidad.
mr_eclair

Respuestas:


40

. es la carpeta actual

.. es la carpeta sobre la carpeta actual, la carpeta que contiene la carpeta actual.

A veces verá ese único punto en uso cuando alguien quiera ejecutar un script desde su directorio de inicio. Por ejemplo: ./install-app.sh. Eso significa que el archivo "install-app.sh" está en el directorio actual. Sería igual de válido hacer /home/username/directory/install-app.sh. De la misma manera, también podría hacer ../install.app si el archivo está en el directorio principal. La razón por la cual es así, no es solo para la navegación, sino también porque no debería ser posible ocultar accidentalmente las aplicaciones del sistema simplemente nombrando un archivo en su directorio de inicio.


100% correcto Piense en ellos como ganchos, que están en cada directorio. Se utilizan exclusivamente para la navegación. Encontrará que esto no es solo un estándar de Linux, sino también en Windows. Probablemente lo mismo en Unix y Mac también, pero nunca he jugado en ninguno de sus comandos.
Ctuchik

1
cd / ; cd ..: P
htorque

1
Es lo mismo en FreeBSD también, así que imagino que también es así en mac, ya que mac se basa en Darwin BSD.
Azendale

htorque: ¿eres una persona religiosa quizás? :)
Jo-Erlend Schinstad

Está en Mac OS X (que funciona como cualquier otro Unix, aunque la GUI oculta algo de eso). Mac OS Classic no los tenía; ::fue utilizado para el directorio anterior. Las rutas sin :ellos eran el directorio actual. De lo contrario, se esperaba una ruta completa (comenzando con el nombre del disco), con componentes delimitados por :. Ej:Macintosh HD:System Folder:Finder
Derobert

4

Esos son enlaces duros a los directorios self (.) Y parent (..). Se crean cuando crea un directorio. Nunca se pueden eliminar (sin eliminar el directorio señalado por ellos).

Si crea un directorio:

mkdir /tmp/foo

puede ver que en realidad hay 2 enlaces duros a / tmp / foo:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

el primero es del directorio / tmp / que apunta a / tmp / foo, y el segundo es el '.' con in / tmp / foo / apuntando a sí mismo.


2

Además, tenga en cuenta que puede usar ls -A(en lugar de ls -a) para enumerar todos los archivos, incluidos los archivos ocultos, pero excluyendo los directorios .y ...


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.