J'essaie de trouver tous les gros fichiers sur mon serveur Centos. Faire cela que j'utilise:
find / -maxdepth 10 -size +100000 -ls
J'ai essayé de changer -ls
à -lsh
Mais ce n'est pas permis.
Comment puis-je afficher ces résultats avec des tailles lisibles par l'homme (à l'aide de suffixes K, M, ...)?
find
_ n'a pas d'options sophistiquées comme ls
. Si tu veux ls -h
, vous devez appeler ls
.
find / -maxdepth 10 -size +100000 -exec ls -lh {} +
Je recommande le -xdev
Option pour éviter de recouvrer dans d'autres systèmes de fichiers, ce qui serait inutile si vous êtes préoccupé par l'espace disque.
find / -xdev -maxdepth 10 -size +100000 -exec ls -lh {} +
Si vous utilisez ZSH comme coquille, alors au lieu d'utiliser find
, vous pouvez utiliser Glob Qualifics. Limiter la taille du fichier est simple: L
suivi d'une taille; La taille peut avoir une unité optionnelle avant le numéro. Si vous ne vous souciez pas de la profondeur maximale, vous pouvez utiliser **/
Pour recueillir dans des sous-répertoires. Si vous vous souciez de la profondeur maximale, il est plus lourd que ZSH Glob Schémas manquent d'un moyen d'exprimer "au plus -n occurrences". Pour éviter la récursion de l'appareil, utilisez le qualificatif d
glob; Vous devez trouver le numéro de périphérique, que vous pouvez afficher avec la commande stat
sous Linux (stat -c %d /
Pour afficher uniquement le numéro) ou avec ZSH stat
_ intégré (Run zmodload zsh/stat
Pour le charger).
ls -lh /**/*(L+M99d$(stat -c %d /))
La commande que vous essayez est lisible pour moi. Cependant, vous pouvez utiliser l'utilitaire de fichier avec la recherche ci-dessous.
find / -maxdepth 10 -size +100000 -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
Une autre façon de faire cela consiste à utiliser la commande ci-dessous.
du -BM / | sort -nr
La commande ci-dessus vous donnera les fichiers de la taille du fichier triée.
Si vous utilisez Coreutils> 7.5 , vous pouvez émettre la commande ci-dessous pour répertorier les fichiers par tailles.
du -ah / | grep -v "/$" | sort -h
Dans ma machine, je n'ai pas eu le sort -h
Option disponible.
Comme vous l'aviez mentionné dans le commentaire, votre format lisible humain est que le fichier doit avoir la taille dans KB , MB ou GB . J'irais avec le deuxième commandement que j'avais posté comme réponse. La sortie que j'ai eu quand je l'ai utilisée dans mon système est,
du -BM /home/ramesh/chk1/ | sort -nr
50M /home/ramesh/chk1/
21M /home/ramesh/chk1/Hierarchical_Clustering_Working
3M /home/ramesh/chk1/checking_files
1M /home/ramesh/chk1/checking/checking2
1M /home/ramesh/chk1/checking/checking1
1M /home/ramesh/chk1/checking/asdf
1M /home/ramesh/chk1/checking