#1 Le 14/03/2023, à 21:21
- iznobe
[ resolu ] classer les fichiers rescursivements par leur taille
Bonjour , je me demandais quelle commande utiliser de façon a afficher les fichiers uniquements dans un repertoire principal + les sous repertoires en une seule liste en les classants par leur taille , un peu comme avec ncdu , mais sans voir les repertoires .
il semblerait que cela soit pas si mal :
find . -type f -printf "%s %p\n" | sort -n
Dernière modification par iznobe (Le 14/03/2023, à 22:12)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#2 Le 14/03/2023, à 21:27
- Watael
Re : [ resolu ] classer les fichiers rescursivements par leur taille
find ... | sort ... #| cut ... #si tu n'as pas besoin de leur taille
?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 14/03/2023, à 21:27
- sputnick
Re : [ resolu ] classer les fichiers rescursivements par leur taille
Comme ceci:
find . -type f -printf '%b %p\n' | sort -rk1 -n | cut -d ' ' -f2-
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#4 Le 14/03/2023, à 21:42
- beuguissime
Re : [ resolu ] classer les fichiers rescursivements par leur taille
Salut,
J'arrive un peu après la bataille mais je publie quand même ma proposition
Une fois dans le dossier parent que tu veux parcourir et dans un shell bash (uniquement?):
find ~+ -type f -printf "%s|%p\n" | sort -t \| -k1n
find retourne en première colonne la taille en byte, puis le chemin absolu du fichier en deuxième colonne, les deux colonnes sont séparées par le caractère '|' (ce qui fait l'hypothèse que ce caractère n'apparaît pas dans les noms de fichier). Puis la commande sort classe selon la taille croissante.
La solution de sputnick utilise '%b' ce qui renvoie la place réellement occupée par le fichier en nombre de blocs de 512 bytes. Ce n'est pas la même information de taille qui est affichée habituellement par la commande ls.
Dernière modification par beuguissime (Le 14/03/2023, à 21:43)
Hors ligne
#5 Le 14/03/2023, à 21:46
- sputnick
Re : [ resolu ] classer les fichiers rescursivements par leur taille
@beuguissime: tu affiche dans le mauvais sens par rapport à ncdu.
J'ai fait le choix de ne pas afficher la taille, il suffit de retirer
| cut...
pour l'afficher
Et en plus lisible, pour avoir la taille des fichiers en version humaine:
find . -type f -exec du -h {} \; | sort -k1 -rh
Dernière modification par sputnick (Le 14/03/2023, à 21:49)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#6 Le 14/03/2023, à 21:56
- beuguissime
Re : [ resolu ] classer les fichiers rescursivements par leur taille
à sputnick: je ne suis pas familier de la commande ncdu. Ma proposition est bien sûr amendable en fonction du besoin de iznobe. ;-)
Là, j'ai de toute façon fait l'hypothèse qu'il ou elle voulait trouver les fichiers les plus gros avec une lecture directement dans le terminal et, avec mon classement, ces fichiers seront en bas de liste et donc les dernières lignes affichées dans le terminal. Si l'arborescence parcourue contient 5000 fichiers, avec un classement par taille décroissante, bon courage pour remonter tout en haut du terminal.
Après, on peut toujours enchaîner avec une commande less ou most pour parcourir le résultat de façon plus commode.
Hors ligne
#7 Le 14/03/2023, à 22:05
- iznobe
Re : [ resolu ] classer les fichiers rescursivements par leur taille
si j' ai besoin de voir leur taille et dans l' ordre inverse si possible .
donc un truc dans le genre de :
find . -type f -printf "%s %p\n" | sort -nr
?
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#8 Le 14/03/2023, à 22:09
- sputnick
Re : [ resolu ] classer les fichiers rescursivements par leur taille
si j' ai besoin de voir leur taille et dans l' ordre inverse si possible .
donc un truc dans le genre de :
find . -type f -printf "%s %p\n" | sort -nr
?
Croissant (chocolatines...) ou décroissants (pains au choc?)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#9 Le 14/03/2023, à 22:10
- iznobe
Re : [ resolu ] classer les fichiers rescursivements par leur taille
Comme ceci:
find . -type f -printf '%b %p\n' | sort -rk1 -n | cut -d ' ' -f2-
avec :
find . -type f -printf '%b %p\n' | sort -rk1 -n
c ' est presque pareil qu ' apres ma reflexion suite a la remarque de @watael , sauf que cette commande , n' affiche pas le dossier parent le cas echeant .
En tout cas , jolie commande , meme si je prefere avoir les dossiers dans le chemin ( moins presentable ) , mais plus pratique pour une recherche manuelle .
Merci a vous tous .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#10 Le 14/03/2023, à 22:17
- beuguissime
Re : [ resolu ] classer les fichiers rescursivements par leur taille
Si tu veux avoir le chemin complet, adapte ma proposition en utilisant l'option '-k1nr' a lieu de '-k1n' pour la commande sort.
Hors ligne