J'utilise Centos 6.8
J'aimerais savoir si je peux trouver tous les fichiers avec l'extension et la commande .log par taille de fichier et afficher la taille du fichier à côté du nom de fichier?
J'utilise actuellement cette commande pour trouver tous les fichiers avec l'extension .log:
find . -name \*.log
Cela semble fonctionner pour moi:
find . -name \*.log -ls | sort -r -n -k7
Voici deux options; une bash-centrique et un juste pour le plaisir.
( shopt -s globstar dotglob; stat --format "%s %n" -- **/*.log | sort -rn )
Cette:
shopt
n'affectent pas la coque actuelle/courante.**
Syntaxe pour correspondre aux fichiers des sous-répertoires; Dotglob permet au globe de la coque de correspondre aux répertoires commençant par un .
stat
est la façon dont nous recueillons les tailles de fichiers avec leurs noms; Il est installé par défaut sur les systèmes CENTOS - il n'est pas spécifié POSIX.**/*.log
, qui rassemble des noms de fichiers correspondants (* .log) dans le répertoire actuel et des sous-répertoires.-n
Sans le r
pour les trier dans l'ordre de taille ascendante).Une autre option centrée sur bash, mais celle qui exerce également un drapeau ls
pour trier ses arguments par taille:
shopt -s globstar dotglob
ls -lS **/*.log
# or, in reverse:
ls -lrS **/*.log
Pour exercer votre système et votre patience, vous pouvez rechercher des fichiers d'une taille spécifique dans un certain ordre:
for((i=9223372036854775807;i>=0;i--)); do find . -name \*.log -size ${i}c -exec stat --format "%s %n" {} + ; done
Ceci exécute 9 223 372 036 854 775 807 (sur 9 Quintillion ) find
commandes, recherchant des fichiers * .log de toutes les formes possibles, appelez à nouveau stat
pour afficher uniquement les tailles et les noms de fichiers . Si plusieurs fichiers sont multiples de la même taille, j'ai inclus Rechercher's {} +
Syntaxe pour réussir autant de noms de fichiers sur stat
comme cela correspondra dans l'environnement. Vous devrez peut-être régler la plage de boucle for
basée sur la taille entière de votre coquille ou si vous savez à quel point le fichier journal le plus important pourrait être important. Cette "option" a le "avantage" de pouvoir être conforme à POSIX si vous remplacez l'appel stat
appel avec un simple ls
.