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/file1
y hourly.2/file1
podría ser difícil relacionado con el mismo archivo, mientras que hourly.1/file2
y hourly.2/file2
son 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.2
pero no debajohourly.1
, puede obtenerlo un poco indirectamente condu
. Sidu
procesa 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.2
informahourly.2
es 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.1
no contiene ninguna línea nueva).fuente
Como dice @Gilles, dado que
du
solo 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 dirB
Las compilaciones de Awesomely BusyBox
find
vienen sin-printf
soporte. Aquí hay una modificación a la respuesta de @ grebneke :fuente
Más simple
Ejemplo
fuente