En los sistemas de archivos de estilo Unix (incluso en Linux), los archivos no están realmente "en" ningún lugar en particular. En cambio, el sistema usa enlaces duros para señalar en partes lo que equivale a una gran cantidad de datos. Por lo tanto, cuando crea un archivo, también crea su primer enlace rígido: el que realmente reside en el lugar donde "guardó" el archivo. Si crea más enlaces duros, hasta donde el sistema sabe, el archivo existe en varios lugares a la vez.
Cuando "borra" un archivo, normalmente solo está borrando el enlace duro que existía en el lugar que especificó. Por eso se llama a la llamada del sistema para eliminar archivos unlink()
. El sistema no eliminará el archivo hasta que no queden enlaces duros. Pero una vez que se destruye el último enlace rígido, también lo hacen los datos.
Entonces, ¿a dónde van los archivos que eliminas? Si todavía hay enlaces duros, estos archivos están donde estén los enlaces duros que no eliminó. Si no quedan enlaces duros, los archivos desaparecen.