#1 Le 25/09/2013, à 18:14
- Whispering
Afficher les sous repertoires de plus de 10mo
Bonjour a tous ! Aujoud'hui, mon prof d'architecture informatique m'a donné un probleme suplémentaire car j'avais finis avant les autres. Ce probleme est :
Affichez les sous-répertoires de votre répertoire principal dont l’espace occupé est supérieur à 10
Mo (changez la valeur si vous obtenez trop de résultats).
Donc la je me dis, facile, je vias faire un script. Mais seulement, il me manque quelques données pour pouvoir l'utiliser, c'est plus dur que je le pensais. Pour l'instant, j'en suis la :
int i;
while (i < find ./ -type d | wc -l )
{
du /home >> fichier_cache;
cat fichier_cache | head -n i | tail -n 1
i++;
if( premier_nombre_ligne > 10 000 000 )
afficher : Fin de la ligne
}
Mon but est de faire une boucle, qui va boulcer autant de fois qu'il y a de dossiers, et a cahque passage elle va marquer le repertoire d'aprés avec ' du '
Seulement, pour tester si chaque répertoire fait bien 10mo, je dois utiliser le premier nombre que renvoie du pour chaque sortie. J'ai regardé le man, mais je comprend pas bien l'utilisation des patherns. Donc si quelqu'un pourrai me dire comment tronquer la sortie de du pour ne récuperer que la taille d'un repertoire, ça serai super ^^
Si une autre methode vous viens a l'esprit, je suis ouvert.
Merci d'avance !
Hors ligne
#2 Le 25/09/2013, à 18:28
- pingouinux
Re : Afficher les sous repertoires de plus de 10mo
Bonjour,
Je ne sais pas si c'est exactement ce que tu veux :
while read taille nom
do
[[ $taille -gt 10000000 ]] && printf "%12d %s\n" $taille "$nom"
done < <(du ~ -B1)
Ajouté :
Le script ci-dessus fait la liste des répertoires dont le contenu total (y compris les sous-répertoires) dépase 10Mo.
Si on ne veut tenir compte que des fichiers qui sont dans chaque répertoire, sans descendre dans l'arborescence :
while read nom
do
taille=0
while read fic
do
(( taille+=$(stat -c "%s" "$fic") ))
done < <(find "$nom" -maxdepth 1 -type f)
[[ $taille -gt 10000000 ]] && printf "%12d %s\n" $taille "$nom"
done < <(find ~ -type d)
Dernière modification par pingouinux (Le 25/09/2013, à 21:02)
Hors ligne
#3 Le 25/09/2013, à 21:40
- nesthib
Re : Afficher les sous repertoires de plus de 10mo
Pourquoi faire compliqué ? Nul besoin de boucles
du -s ~/*/ | awk '$1>10240{print $2}'
pour une version plus robuste :
du -sm ~/*/ 2>/dev/null | awk -F'\t' '$1>10{print $2}'
ou installe ncdu
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#4 Le 25/09/2013, à 21:54
- pingouinux
Re : Afficher les sous repertoires de plus de 10mo
@nesthib :
En fait, ça dépend de ce que veut Whispering, car on ne fait pas la même chose.
Affichez les sous-répertoires de votre répertoire principal dont l’espace occupé est supérieur à 10Mo
Tu listes uniquement les répertoires situés directement dans celui d'origine (il faudrait aussi tenir compte de ceux commençant par un ".").
De mon côté, je traite tous les répertoires de l'arborescence.
Hors ligne
#5 Le 25/09/2013, à 22:24
- Whispering
Re : Afficher les sous repertoires de plus de 10mo
Et bien en fait, lister tout les repertoires de +10 mo de mon working directory, ou d'un repertoire cible, c'est pas trés important, mais on va prendre comme exemple le ~/
Nesthib, tes commandes ne me renvoient que /home/whisp.Desktop, je crois que ça ne prend pas en compte les dossiers cachés, meme si la m'interesse beaucoup comme commande.
Par ailleur je ne connais pas 'awk' !
Pingouinux, ton script marche trés bien pour le coup, il m'affiche les bons dossiers les uns aprés les autres !
Je ne le comprend pas, mais je suppose que ça viendras..
Dernière modification par Whispering (Le 25/09/2013, à 22:32)
Hors ligne
#6 Le 26/09/2013, à 00:48
- nesthib
Re : Afficher les sous repertoires de plus de 10mo
Prendre en compte les dossiers cachés il suffit de le demander gentiment au shell
shopt -s dotglob
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne