En Linux, cuando crea una carpeta, crea automáticamente dos enlaces duros al inodo correspondiente. Una que es la carpeta que solicitó crear, la otra es la .
carpeta especial de esta carpeta.
Ejemplo:
$ mkdir folder
$ ls -li
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 folder
$ ls -lai folder
total 0
124596048 drwxr-xr-x 2 fantattitude staff 68 18 oct 16:52 .
124593716 drwxr-xr-x 3 fantattitude staff 102 18 oct 16:52 ..
Como puede ver, ambos folder
y .
dentro folder
tienen el mismo número de inodo (se muestra con la -i
opción).
¿Hay alguna forma de eliminar este .
enlace especial ?
Es solo por experimentación y curiosidad.
También supongo que la respuesta podría aplicarse también a ..
un archivo especial.
Traté de mirar al rm
hombre pero no pude encontrar ninguna manera de hacerlo. Cuando intento eliminar .
todo lo que obtengo es:
rm: "." y ".." no puede eliminarse
Tengo mucha curiosidad sobre la forma en que funcionan estas cosas, así que no te abstengas de ser muy detallado sobre el tema.
EDITAR: Tal vez no estaba claro con mi publicación, pero quiero entender el mecanismo subyacente responsable de los .
archivos y las razones por las que no se pueden eliminar.
Sé que el estándar POSIX no permite una carpeta con menos de 2 enlaces duros, pero realmente no entiendo por qué. Quiero saber si podría ser posible hacerlo de todos modos.