Nous avons un ensemble de répertoires contenant des index lucene. Chaque index est un mélange de différents types de fichiers (différenciés par extension), par exemple:
0/index/_2z6.frq
0/index/_2z6.fnm
..
1/index/_1sq.frq
1/index/_1sq.fnm
..
(c'est environ 10 extensions différentes)
Nous aimerions obtenir un total par extension de fichier, par exemple:
.frq 21234
.fnm 34757
..
J'ai essayé différentes combinaisons de du / awk / xargs, mais il est difficile de faire exactement cela.
filesystems
shell
disk-space-utilization
barnybug
la source
la source
Réponses:
Pour une extension donnée, vous pouvez l'utiliser
pour obtenir la taille totale du fichier pour ce type.
Et après réflexion
Qui affichera la taille en octets de chaque type de fichier trouvé.
la source
-iname
pour rendre le cas de recherche d'extension de fichier insensible.Avec bash version4, il vous suffit d'appeler
find
,ls
et ceawk
n'est pas nécessaire:la source
read name size
àread size name
et-printf "%f\t%s\n"
à-printf "%s\t%f\n"
devrait le corriger.if [ "$name" == "$ext" ]; then ext="*no_extension*"; fi
aprèsext=${name##*.}
si vous devez l'empêcher. Cela mettra tous les fichiers sans extension dans le*no_extension*
groupe (j'utilise*no_extension*
parce que ce*
n'est pas un caractère valide dans le nom de fichier)Chaque seconde colonne divisée par
.
et dernière partie (extension) enregistrée dans le tableau.alors vous avez obtenu la taille totale de chaque extension en octets.
la source
Extension du script Iain avec une version plus rapide pour travailler avec un grand nombre de fichiers.
la source
Voici la solution:
Solution publiée à l'origine sur ce post: Obtenez toutes les extensions et leur nombre de fichiers respectifs dans un répertoire
la source
J'ai résolu en utilisant ces deux commandes:
la source
ma version de réponse à la question:
la source
Essayez Crab ( http://etia.co.uk/ ) - c'est un utilitaire de ligne de commande qui vous permet d'interroger le système de fichiers à l'aide de SQL.
la source