J'utilise rsnapshot pour les sauvegardes, ce qui génère une série de dossiers contenant des fichiers du même nom. Certains fichiers sont liés en dur, tandis que d'autres sont séparés. Par exemple, hourly.1/file1
et hourly.2/file1
peuvent être liés en dur au même fichier, hourly.1/file2
et hourly.2/file2
sont des fichiers entièrement séparés.
Je veux trouver la quantité d'espace utilisée par le dossier en hourly.2
ignorant tous les fichiers qui sont des liens durs vers des fichiers dans hourly.1
. Donc, dans l'exemple ci-dessus, je voudrais obtenir la taille de file2, mais ignorer file1.
J'utilise bash sur linux, et je veux le faire aussi simplement que possible à partir de la ligne de commande, donc pas de grandes solutions graphiques ou autres OS uniquement.
la source
hourly2
, votre commande procédera à une mauvaise réponse.hourly.2
. S'ils y sont copiés, ils n'auront pas de liens supplémentaires et ma commande fonctionnera. S'ils sont liés en dur, cela échouera évidemment. Je suppose que les nouveaux fichiers de sauvegarde sont copiés.Si vous souhaitez spécifiquement la taille des fichiers présents sous
hourly.2
mais pas soushourly.1
, vous pouvez l'obtenir un peu indirectement avecdu
. Sidu
traite le même fichier plusieurs fois (même sous des noms différents, c'est-à-dire des liens durs), il ne compte le fichier que la première fois. Donc, ce qui estdu hourly.1 hourly.2
signalé,hourly.2
c'est la taille que vous recherchez. Donc:(Fonctionne sur n'importe quel système POSIX et la plupart des autres variantes Unix. Suppose que le nom du répertoire
hourly.1
ne contient aucune nouvelle ligne.)la source
Comme le dit @Gilles, puisque
du
ne compte que le premier de tous les liens physiques pointant vers le même inode qu'il rencontre, vous pouvez lui donner des répertoires d'affilée:C'est-à-dire que tout fichier dans 'hourly.2' référençant un inode (aka "vrai" fichier) déjà référencé dans 'hourly.1', ne sera pas compté.
la source
$ du -hcs dirA dirB
Plus simple
Exemple
la source
Les versions impressionnantes de BusyBox sont fournies
find
sans-printf
support. Voici la modification de la réponse de @ grebneke :la source