La respuesta corta es que no hay ninguna opción para configurar el Finder para que cuente múltiples enlaces duros al mismo inodo sólo una vez. El Finder informa de la suma de los tamaños actuales de todos los archivos y carpetas contenidos en una carpeta. No se incluye el almacenamiento extra necesario para el versionado y no se informa del ahorro de almacenamiento por el uso de la copia en escritura o de múltiples enlaces duros al mismo archivo.
Una explicación más larga de cómo APFS asigna el almacenamiento
El valor del tamaño que aparece en la imagen del OP es la suma de los tamaños de los archivos de la carpeta. El PO quiere que esto sea el espacio ocupado por los archivos de la carpeta. Esto es lo que piensa el PO du -sh .
lo hace, pero esto sería incorrecto. En APFS existe la copia en escritura. El du -sh .
no lo tiene en cuenta y, por tanto, puede informar de un valor incorrecto.
A continuación, un ejemplo.
Los siguientes comandos crean un archivo de 60 MB llamado original
en un nombre de carpeta test
en un volumen APFS de 100 MB llamado question
.
hdiutil create -size 100M -type UDIF -fs APFS -volname question ~/Desktop/question.dmg
hdiutil attach ~/Desktop/question.dmg
mkdir /Volumes/question/test
cd /Volumes/question/test
dd if=/dev/zero of=original bs=60000000 count=1
A continuación se muestra una imagen de Get Info
de la test
carpeta y question
volumen. El test
utiliza 60 MB y la carpeta question
utiliza una cantidad ligeramente mayor debido a otros archivos y carpetas más pequeños.
La salida de los comandos ls -li
y du -sh .
se indican a continuación. Aquí, el du -sh .
produce 57 MiB y coincide con el tamaño de 60 MB del original
archivo. (57 MiB = 60 MB)
$ ls -li
total 117192
19 -rw-r--r-- 1 davidanderson staff 60000000 Jan 1 19:32 original
$ du -sh .
57M .
A continuación, se introdujo el comando que se muestra a continuación, que utiliza la copia en escritura para hacer una copia del original.
cp -c original copy
La imagen siguiente muestra que la carpeta de prueba ha duplicado su tamaño. Esta es la suma de los tamaños de los archivos original
y copy
. El volumen question
no ha cambiado de tamaño.
La salida de los comandos ls -li
y du -sh .
se indican a continuación. Aquí, el du -sh .
produce la suma de los tamaños producidos por el comando ls -li
. (114 MiB = 120 MB)
$ ls -li
total 234384
21 -rw-r--r-- 1 davidanderson staff 60000000 Jan 1 19:32 copy
19 -rw-r--r-- 1 davidanderson staff 60000000 Jan 1 19:32 original
$ du -sh .
114M .
A continuación, se introdujo el comando que se muestra a continuación, que creó un nuevo enlace duro llamado link
a la original
archivo.
ln original link
A continuación se muestra una imagen de Get Info
de la test
carpeta y question
volumen. De nuevo, el espacio utilizado en el question
volumen no ha cambiado. El tamaño del test
se ha triplicado desde el tamaño original de 60 MB.
La salida de los comandos ls -li
y du -sh .
se indican a continuación.
El valor emitido por el du -sh .
no es el espacio ocupado por los archivos ni el valor es la suma de los tamaños de los archivos.
$ ls -li
total 351576
21 -rw-r--r-- 1 davidanderson staff 60000000 Jan 1 19:32 copy
19 -rw-r--r-- 2 davidanderson staff 60000000 Jan 1 19:32 link
19 -rw-r--r-- 2 davidanderson staff 60000000 Jan 1 19:32 original
$ du -sh .
114M .
Por lo tanto, no habría ninguna razón para una opción para configurar Finder para contar múltiples enlaces duros al mismo inodo sólo una vez. En otras palabras, no hay razón para crear una opción que replique un valor que puede no representar un valor significativo. El OP quiere Get Info
en la carpeta para presentar el espacio utilizado por los archivos en la carpeta. Este sería un valor difícil de determinar (y, por lo tanto, que llevaría mucho tiempo). Por ejemplo, se introdujo el siguiente comando para sobrescribir los primeros 30 MB de la carpeta original
archivo.
dd if=/dev/zero bs=30000000 count=1 of=original conv=notrunc
La imagen siguiente muestra que el tamaño de la carpeta de prueba no ha cambiado. Sin embargo, el volumen question
El espacio utilizado ha aumentado en aproximadamente 30 MB.
La salida de los comandos ls -li
y du -sh .
se indican a continuación. La página web original
y link
siguen teniendo el mismo número de inodo, pero ahora, debido a la copia en escritura, sólo los últimos 30 MB de estos archivos se comparten con los últimos 30 MB del copy
archivo. Por lo tanto, aunque el tamaño de los archivos no ha cambiado, es necesario asignar 30 MB de espacio en disco para mantener los 30 MB de ceros escritos por el dd if=/dev/zero bs=30000000 count=1 of=original conv=notrunc
mando. De nuevo el ls -li
no muestra ningún cambio.
$ ls -li
total 351576
21 -rw-r--r-- 1 davidanderson staff 60000000 Jan 1 19:32 copy
19 -rw-r--r-- 2 davidanderson staff 60000000 Jan 2 02:00 link
19 -rw-r--r-- 2 davidanderson staff 60000000 Jan 2 02:00 original
$ du -sh .
114M .
Determinar la cantidad de espacio utilizado por una carpeta es más complicado que simplemente mirar el tamaño del archivo e ignorar un tamaño cuando se encuentra un número de inodo duplicado. La página web Get Info
para un volumen puede hacerlo simplemente restando el espacio libre del espacio total para obtener el espacio utilizado. La página web Get Info
para una carpeta tendría que asegurarse de que un bloque o secuencia de bloques no se cuente más de una vez. IMO, MacOS no hace esto porque hacerlo sería demasiado tiempo. Para ser justos, podría estar equivocado en esto. Por ejemplo, WGroleau ha expresado esencialmente la opinión contraria.