Utilizo rsnapshot para copias de seguridad, que genera una serie de carpetas que contienen archivos con el mismo nombre. Algunos de los archivos están vinculados, mientras que otros están separados. Por ejemplo, hourly.1/file1y hourly.2/file1podría ser difícil relacionado con el mismo archivo, mientras que hourly.1/file2y hourly.2/file2son archivos totalmente independientes.
Quiero encontrar la cantidad de espacio utilizado por la carpeta hourly.2 ignorando los archivos que son enlaces duros a los archivos hourly.1. Entonces, en el ejemplo anterior, me gustaría obtener el tamaño del archivo2, pero ignorar el archivo1.
Estoy usando bash en linux, y quiero hacer esto desde la línea de comandos de la manera más simple posible, por lo que no hay grandes soluciones gráficas o de otro sistema operativo, por favor.
fuente

hourly2, su comando procederá con una respuesta incorrecta.hourly.2. Si se copian allí, no tendrán enlaces adicionales y mi comando funcionará. Si están vinculados, obviamente fallará. Supongo que se copian nuevos archivos de copia de seguridad.Si desea específicamente el tamaño de los archivos que están debajo
hourly.2pero no debajohourly.1, puede obtenerlo un poco indirectamente condu. Siduprocesa el mismo archivo más de una vez (incluso con nombres diferentes, es decir, enlaces duros), solo cuenta el archivo la primera vez. Entonces, lo quedu hourly.1 hourly.2informahourly.2es el tamaño que está buscando. Así:(Funciona en cualquier sistema POSIX y en la mayoría de las otras variantes de Unix. Se supone que el nombre del directorio
hourly.1no contiene ninguna línea nueva).fuente
Como dice @Gilles, dado que
dusolo cuenta el primero de todos los enlaces duros que apuntan al mismo inodo que encuentra, puede asignarle directorios en una fila:Es decir, cualquier archivo en 'hourly.2' que haga referencia a un inodo (también conocido como archivo "real") ya referenciado en 'hourly.1', no se contará.
fuente
$ du -hcs dirA dirBLas compilaciones de Awesomely BusyBox
findvienen sin-printfsoporte. Aquí hay una modificación a la respuesta de @ grebneke :fuente
Más simple
Ejemplo
fuente