#1 Le 03/09/2009, à 08:53
- krzyzstof
[Résolu] Terminal : qui est le plus gros ?
Bonjour,
Une ch'tite question aux pro de la ligne de commande (enfin deux questions ) :
1- Comment faire apparaître dans le terminal le fichier le plus volumineux d'un dossier (pouvant contenir des sous-dossiers par ailleurs) ?
2- Comment lister tous les fichiers et sous-dossiers d'un dossier en les classant par ordre de volume (du plus "lourd" au plus "léger") ?
Dans ce dernier cas ma base de départ est sûrement :
$ du -ah
mais je ne sais pas quel(s) paramètres rajouter pour le classement par ordre décroissant ?
Par avance merci
Dernière modification par krzyzstof (Le 04/09/2009, à 19:07)
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#2 Le 03/09/2009, à 08:55
- Hawkmoon
Re : [Résolu] Terminal : qui est le plus gros ?
du -sk * |sort -n
Tagazok à toi, mon frère !
Hors ligne
#3 Le 03/09/2009, à 08:57
- gren
Re : [Résolu] Terminal : qui est le plus gros ?
Pour tout les fichiers, sous dossier du plus gros au plus petit :
du -a | sort -rn
Pour la seconde question c'est un peu plus compliqué, mais c'est faisable avec un script, je m'y tente.
Dernière modification par gren (Le 03/09/2009, à 09:00)
Hors ligne
#4 Le 03/09/2009, à 09:07
- gren
Re : [Résolu] Terminal : qui est le plus gros ?
Pour la deuxième question:
Tu crée un fichier script list_dir_size.sh avec :
#!/bin/bash
#pour indiquer que mon séparateur est le retour à la ligne
IFS='
'
#boucle parcourant tous les dossiers et affichant la taille et le nom pour chacun
for i in $(find -type d)
do
du -s "$i"
done
#au cas ou
unset IFS
chmod +x list_dir_size.sh
./list_dir_size.sh | sort -rn | less
[edit: simplifications+explications]
Dernière modification par gren (Le 03/09/2009, à 09:32)
Hors ligne
#5 Le 03/09/2009, à 11:15
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
@ Hawkmoon : merci, mais ce n'est pas exactement ma demande. N'apparaissent que les dossiers (et pas les fichiers - même cachés) et dans l'ordre croissant et non décroissant. La première commande de Gren est celle que je recherchais : du -a | sort -rn
@ Gren : J'ai tout remis dans l'ordre : ta réponse à ma première question est en fin de compte la réponse à ma 2ème et la 2ème à ma 1ère
J'ai deux questions subsidiaires :
Lorsque tu affiches le résultat de "du -ah | sort -rn", y a-t-il un moyen d'afficher page par page le résultat car cela défile trop vite et j'ai beaucoup de fichiers ?
Pour ton script pour ma 1ère question, je l'ai mis en pratique, mais si je ne dis pas de bêtises il m'affiche un dossier et non un fichier. En outre le dossier qu'il m'affiche ne me semble pas le plus lourd de mon répertoire. Sûr de toi ou suis-je passé à côté de kèke chose ? Merci pour ton aide aussi.
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#6 Le 03/09/2009, à 11:56
- Hawkmoon
Re : [Résolu] Terminal : qui est le plus gros ?
ajoute
|more
Tagazok à toi, mon frère !
Hors ligne
#7 Le 03/09/2009, à 12:08
- xabilon
Re : [Résolu] Terminal : qui est le plus gros ?
Déplacé dans "Console"
Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.
Hors ligne
#8 Le 03/09/2009, à 12:21
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
@ xabilon : désolé j'avais pas vu qu'il y avait un forum spécial . Merci
@ Hawkmoon : Merci cela marche nickel le :
du -ah | sort -rn |more
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#9 Le 03/09/2009, à 12:58
- Totor
Re : [Résolu] Terminal : qui est le plus gros ?
Pour la deuxième question:
Tu crée un fichier script list_dir_size.sh avec :
#!/bin/bash #pour indiquer que mon séparateur est le retour à la ligne IFS=' ' #boucle parcourant tous les dossiers et affichant la taille et le nom pour chacun for i in $(find -type d) do du -s "$i" done #au cas ou unset IFS
Erreur, cela donne le dossier le plus gros mais pas le fichier le plus gros.
Voilà une solution :
find -type f -printf "%k %P\n"|sort -nr|head -1|cut -d' ' -f 2-
Note :
@ Hawkmoon : Merci cela marche nickel le :
du -ah | sort -rn |more
ça m'étonnerai ...
l'option -h donne les résultats au format "humain".
Donc, tu peux très bien avoir :
4k fichier2
1,1G fichier1
ce qui est totalement erroné par rapport à ta demande...
-- Lucid Lynx --
Hors ligne
#10 Le 03/09/2009, à 13:26
- gren
Re : [Résolu] Terminal : qui est le plus gros ?
gren a écrit :#!/bin/bash #pour indiquer que mon séparateur est le retour à la ligne IFS=' ' #boucle parcourant tous les dossiers et affichant la taille et le nom pour chacun for i in $(find -type d) do du -s "$i" done #au cas ou unset IFS
Erreur, cela donne le dossier le plus gros mais pas le fichier le plus gros.
Voilà une solution :find -type f -printf "%k %P\n"|sort -nr|head -1|cut -d' ' -f 2-
Erreur ? Je crois pas non.
C'est justement ce qu'il veut : trier par taille de dossier.
Autrement oui |more fonctionne ou alors |less
Dernière modification par gren (Le 03/09/2009, à 13:26)
Hors ligne
#11 Le 03/09/2009, à 13:35
- Totor
Re : [Résolu] Terminal : qui est le plus gros ?
C'est justement ce qu'il veut : trier par taille de dossier.
On ne doit pas comprendre de la même façon :
[...]
Comment faire apparaître dans le terminal le fichier le plus volumineux d'un dossier (pouvant contenir des sous-dossiers par ailleurs) ?[...]
-- Lucid Lynx --
Hors ligne
#12 Le 03/09/2009, à 14:19
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
[...] Comment faire apparaître dans le terminal le fichier le plus volumineux d'un dossier (pouvant contenir des sous-dossiers par ailleurs) ?[...]
oui ce que j'aimerai connaître c'est le fichier le plus volumineux contenu dans un dossier pouvant lui même contenir des dossiers...et donc le fichier recherché peut se trouver dans l'un de ces sous-dossiers. Suis-je plus clair ?
Concernant le code
du -ah | sort -rn |more
effectivement ! Mais l'erreur vient de moi et non de Hawkmoon ou de Gren. Connaissant le paramètre "h", j'ai voulu l'employer pour que cela plus facilement lisible, mais ne comprenant pas tout le reste de la ligne de code, je n'avais pas compris que cela pouvait avoir une incidence
Je viens d'essayer ta ligne pour le fichier le plus volumineux. Même si cela ne me donne pas sa valeur (poids), cela me trouve bien le fichier avec son arborescence.
Bref merci à toi et à Hawkmoon et Gren pour votre aide
Sympa le Terminal mais pfff au début c'est qd même pas évident
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#13 Le 03/09/2009, à 14:20
- Totor
Re : [Résolu] Terminal : qui est le plus gros ?
pour le "poids" (exprimé en ko) :
find -type f -printf "%k %P\n"|sort -nr|head -1
-- Lucid Lynx --
Hors ligne
#14 Le 03/09/2009, à 14:24
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
Heu...juste une dernière question (promis j'arrête après )
En utilisant :
find -type f -printf "%k %P\n"|sort -nr|head -1|cut -d' ' -f 2-
ou
find -type f -printf "%k %P\n"|sort -nr|head -1
est-il possible de rajouter une commande pour exclure un sous-dossiers spécifique de la recherche...je sais, je sais...:lol:
Dernière modification par krzyzstof (Le 03/09/2009, à 14:27)
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#15 Le 03/09/2009, à 14:46
- Totor
Re : [Résolu] Terminal : qui est le plus gros ?
oui, je te laisse regarder les options -wholename et -prune de la commande find.
-- Lucid Lynx --
Hors ligne
#16 Le 03/09/2009, à 16:26
- gren
Re : [Résolu] Terminal : qui est le plus gros ?
oui ce que j'aimerai connaître c'est le fichier le plus volumineux contenu dans un dossier pouvant lui même contenir des dossiers...
Ok je crois avoir inversé les deux questions, la prochaine fois penses à faire un topic par question comme il se doit sur ce forum. Merci
Je viens d'essayer ta ligne pour le fichier le plus volumineux. Même si cela ne me donne pas sa valeur (poids), cela me trouve bien le fichier avec son arborescence.
Au pire si ca te donne juste le nom de fichier tu peux toujours utiliser mon script et changer les options du find (la ou j'ai mis find -type d)
D'ailleurs ya surement moyen de passer par xargs pour simplifier mon script en une ligne de commande.
Bref merci à toi et à Hawkmoon et Gren pour votre aide
Pas de problème.
Dernière modification par gren (Le 03/09/2009, à 16:29)
Hors ligne
#17 Le 03/09/2009, à 17:20
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
J'ai regardé dans les forums l'utilisation de -prune. Mais je ne suis pas arrivé à insérer cette fonction dans la ligne de commande précédente et ce malgré de nombreux essais. Tant pis.
Merci quand même.
Dernière modification par krzyzstof (Le 03/09/2009, à 17:21)
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#18 Le 03/09/2009, à 18:15
- Totor
Re : [Résolu] Terminal : qui est le plus gros ?
find -L \( -wholename "*<Nom du dossier>*" -prune -o -type f \) -printf "%k %P\n"|sort -nr|head -1
Note : j'ai ajouté l'option -L car j'avais des dossiers de type "liens symboliques"
tu peux l'enlever si tu veux
-- Lucid Lynx --
Hors ligne
#19 Le 03/09/2009, à 20:25
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
J'ai essayé en tapant :
christophe@totoshika-ubuntu:~$ find -L \( -wholename "*.gvfs*" -prune -o -type f \) -printf "%k %P\n"|sort -nr|head -1
(je veux scanner mon home sauf le dossier ".gvfs/")
et là le terminal s'emballe et me met des tonnes de lignes en continu qui me semblent être tjs les mêmes (il faut que je stoppe le terminal avec CTR+C) :
find: Boucle détectée dans le système de fichiers ; ""./.wine/dosdevices/z:/sys/devices/platform/dock.0/subsystem/devices/pcspkr/input/input5/subsystem/input0/device/subsystem/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:01/physical_node/subsystem/devices/0000:00:01.0/pci_bus/0000:01/subsystem/0000:00/device/0000:00:12.0/host0/subsystem/devices/host2/scsi_host/host2/subsystem/host4/device/target4:0:0/4:0:0:0/block/sr0/subsystem/loop5/bdi/subsystem/1:5/subsystem"" est dans la même boucle que "./.wine/dosdevices/z:/sys/devices/platform/dock.0/subsystem/devices/pcspkr/input/input5/subsystem/input0/device/subsystem/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:01/physical_node/subsystem/devices/0000:00:01.0/pci_bus/0000:01/subsystem/0000:00/device/0000:00:12.0/host0/subsystem/devices/host2/scsi_host/host2/subsystem/host4/device/target4:0:0/4:0:0:0/block/sr0/subsystem/loop5/bdi/subsystem".
...
???
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne
#20 Le 04/09/2009, à 06:49
- gren
Re : [Résolu] Terminal : qui est le plus gros ?
Enlèves l'option -L qui suit les liens symboliques et ca devrait aller.
Hors ligne
#21 Le 04/09/2009, à 19:03
- krzyzstof
Re : [Résolu] Terminal : qui est le plus gros ?
Nickel !!! Marche impec !
Un grand merci à tous les deux
Dernière modification par krzyzstof (Le 04/09/2009, à 19:08)
Portable 1 : DELL Latitude 5320 Kubuntu 24.04.1 / Windows 11 pro (64 bits / 32 Go RAM / 1 To SSD)
Portable 2 : HP EliteBook 840 G4 - Kubuntu 20.04 / Windows 10 pro (64 bits / 32 Go RAM / 512 Go SSD)
Portable 3 : Samsung N220 - Linux Mint 18.3 Mate (32 bits)
Fixe : Custom (carte mère Asus A7V333 + carte graphique ATI Radeon 9600 XT) - Linux Mint 18.1 Mate (32 bits)
Hors ligne