He leído en tantos sitios web que, en Linux, los enlaces simbólicos (enlaces blandos, enlaces simbólicos) son como punteros que hacen referencia a otro archivo, que puede estar ubicado en cualquier lugar (como accesos directos de Windows). Sin embargo, cuando verifico el uso del disco de una carpeta en la que hay enlaces simbólicos, hay una discrepancia entre lo que dice mi administrador de archivos y lo que du
informa. Sin embargo, si escribo du -L
( -L, --dereference; dereference all symbolic links
desde la página del manual), el resultado du -L
y el tamaño que informa mi administrador de archivos son los mismos .
Mi pregunta es : si tengo un enlace suave a un archivo grande en, por ejemplo, en mihome
particiónseparada, ¿tendré algún problema?
Ejemplo :
Mi /var/tmp
carpeta ahora está completamente vacía. Vamos a crear un archivo:
$ cat /some/file.txt > file.txt
$ du -ac
164 ./file.txt
168 .
168 total
Y mi administrador de archivos (Thunar, en este caso) informa
Tamaño: 1 artículo, totalizando 163.0 kB
Todo bien. Ahora, creemos un archivo realmente grande /tmp
y un enlace simbólico a él:
$ cat /dir/really_big.txt > /tmp/heavy.txt
$ du -a | grep heavy.txt
408 ./heavy.txt
$ ln -s /tmp/heavy.txt heavy.txt
$ du -ac
164 ./file.txt
0 ./heavy.txt
168 .
168 total
Todo está bien por ahora. Pero si abro mi administrador de archivos:
Tamaño: 2 artículos, un total de 570.3 kB
Y finalmente:
$ du -acL
164 ./file.txt
408 ./heavy.txt
576 .
576 total
Si la partición en la que /var/tmp
se encuentra es de 1 GiB grande, y creo un enlace en él a un archivo de 1 GiB, ¿morirá mi disco duro? Sé que du
generará 168 y Thunar 1 GiB, pero no sé cuál es el correcto.
fuente
Respuestas:
Los enlaces simbólicos ocupan espacio, por supuesto, pero solo el espacio necesario para almacenar el nombre y el destino más unos pocos bytes para otros metadatos. El espacio ocupado por un enlace simbólico no depende del espacio ocupado por el objetivo (después de todo, ni siquiera se requiere que exista el objetivo).
Plain
du
informa el espacio ocupado por un árbol de directorios en el disco.du -L
informa el espacio que ocuparía un árbol de directorios si todos los enlaces simbólicos fueran reemplazados por su destino. La primera suele ser la información útil; por ejemplo, es el espacio que recuperaría si eliminara el árbol, y es (aproximadamente) el espacio que necesita para hacer una copia de seguridad del árbol.du
en un árbol de directorios muestra (generalmente) un poco más que el total de los tamaños de archivo. Eso se debe a dos cosas. Primero,du
también cuenta los directorios, que toman un poco de espacio para almacenar nombres de archivos y metadatos. En segundo lugar,du
cuenta el espacio en disco que ocupa un archivo, que puede ser diferente del tamaño del archivo: el efecto más común es que los archivos ocupan un número entero de bloques (4kB en una instalación típica de Linux), por lo que un archivo de 1 byte puede mostrar como 4kB en du salida; pero la compresión (como la forma primitiva proporcionada por archivos dispersos en casi todos los sistemas de archivos Unix) puede hacer que el tamaño del archivo sea mayor que su uso en disco.De los números que da, parece que Thunar informa la suma de los tamaños de los archivos en el árbol de directorios, siguiendo enlaces simbólicos . En realidad lo dice de una manera sutil: afirma que el tamaño total es de 570.3 kB, no que el uso del disco es de 570.3 kB. Lo que no se desprende de la interfaz de usuario o la documentación es que Thunar sigue enlaces simbólicos al calcular el tamaño.
Cuál es "correcto" es un asunto subjetivo.
du
informa el uso del disco. Thunar informa el tamaño total siguiendo enlaces simbólicos. La creación de un enlace simbólico tiene un impacto insignificante en el uso del disco, pero por definición cambia los enlaces simbólicos de tamaño total que informa Thunar.fuente
du
muestra el uso del disco, mientras que Thunar muestra algo más.Creo que, por defecto, su administrador de archivos está tratando de obtener el tamaño de los archivos a los que apuntan los enlaces blandos, mientras que
du
le da el tamaño del directorio y los enlaces blandos, pero no los archivos a los que apuntan.Para aclarar,
No estoy seguro de si esto es lo que estaba preguntando, pero si lo es, creo que esta podría ser la respuesta a su pregunta.
fuente