Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 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. big_smile

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 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

iznobe a écrit :

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

sputnick a écrit :

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 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