Pages : 1
#1 Le 02/10/2007, à 18:56
- madrippeur
Effacer le fichier le plus petit
Hum re bonsoir les amis !
J'ai besoin d'un poil d'aide de votre part
Voilà mon probléme :
J'ai dans un répertoire des fichiers (un nombre indéterminé) qui ont tous la même extention. Seul le nom et la taille me permettent de les differencier.
Il faut en fait que j'arrive à effacer le fichier le plus petit en taille, et uniquement celui -ci.
En cherchant un peu j'ai trouvé quelque peu j'ai trouvé :
du -h /repertoire/*.extention
Il me liste les fichiers présents , mais je ne vois pas comment me servir de ça pour effacer le fichier le plus petit :s
Un chti peu de n'aide si vous pié messieux ?
merci d'avance de vos conseils
Hors ligne
#2 Le 02/10/2007, à 19:05
- vinsacmo
Re : Effacer le fichier le plus petit
Pour info, un
ls -S te triera tes fichiers par taille (les gros devant)
ls -aS (pareil avec les fichiers cachés)
Je ne sais pas si ca t'aide
A plus
"Le doute est le commencement de la sagesse"...(Aristote)
...qu'est ce que je dois être sage!
Hors ligne
#3 Le 02/10/2007, à 19:09
- vinsacmo
Re : Effacer le fichier le plus petit
Après c'est
rm nom_du_fichier
(après s'être positionné dans le dossier qui le contient avec
cd chemin_du_fichier)
heu...je crois que c'est irréversible...donc faits gaffe!
"Le doute est le commencement de la sagesse"...(Aristote)
...qu'est ce que je dois être sage!
Hors ligne
#4 Le 02/10/2007, à 19:10
- madrippeur
Re : Effacer le fichier le plus petit
Merci de ta réponse déjà et bonsoir à toi
Je pense que ta réponse peut m'aider effectivement
Ce qu'il se passe, c'est qu'aprés je ne sais pas comment utiliser cela dans un script pour effacer le fichier le plus petit.
je cherche toujours
Hors ligne
#5 Le 02/10/2007, à 19:12
- madrippeur
Re : Effacer le fichier le plus petit
Oups pardon j'avais pas vu la deuxiéme réponse
oui oui le rm pas de soucis je connais, malheuresement je ne vois pas comment utiliser ce résultat pour effacer le fichier en question :s
edit :
Désolé je vois que je me suis peut etre mal exprimé !
En fait je cherche à faire un script qui recherche dans un dossier le fichier le plus petit pour l'effacer.
Donc il faut réussir à mettre le nom du plus petit fichier en variable pour ensuite pouvoir utiliser rm.
Dernière modification par madrippeur (Le 02/10/2007, à 19:32)
Hors ligne
#6 Le 02/10/2007, à 19:45
- Ban
Re : Effacer le fichier le plus petit
Salut !
Tu peux faire avec un for i in `ls -S`…
#!/bin/bash
F=
for i in $(ls -S); do
F="$i"
done
echo $F # affiche le résultat
Par contre, si un nom de fichier contient un espace, ça part en latte.
y'a moyen de résoudre ça en utilisant une autre sytaxe, mais qui (bizarrement ??) ne permet pas de ranger le résultat dans une variable globale, dont obligé de passer par un fichier :
#!/bin/bash
F=`mktemp`
ls -S|while read i; do
echo "$i" > $F
done
cat $F # affiche le résultat
[après réflection…]
Une autre solution, qui fonctionne parfaitement est de découper une variable :
#!/bin/bash
liste=$(ls -S)
liste=${liste##*"
"}
echo $liste # affiche le résultat
ce qui met le plus petit fichier dans $liste
Par contre, si 2 fichiers ont la même taille et sont les plus petits, tu n'en aura qu'un, le dernier dans l'ordre alphabétique.
Voilàvoilà…
@++ !
Ban
La littérature est un luxe, la fiction une nécessité. - Chesterton
Hors ligne
#7 Le 02/10/2007, à 19:47
- HymnToLife
Re : Effacer le fichier le plus petit
Démonstration :
firas@Ana ~/L'Arc-en-Ciel/1994 - tierra $ du *
6976 01 In The Air.ogg
6044 02 All Dead.ogg
7200 03 Blame.ogg
6292 04 Wind Of Gold.ogg
6244 05 Blurry Eyes.ogg
8128 06 Inner Core.ogg
7484 07 Nemuri Ni Yosete.ogg
7744 08 Kaze No Yukue.ogg
6304 09 Hitomi Ni Utsuru Mono.ogg
11428 10 White Feathers.ogg
firas@Ana ~/L'Arc-en-Ciel/1994 - tierra $ du * | sort -n
6044 02 All Dead.ogg
6244 05 Blurry Eyes.ogg
6292 04 Wind Of Gold.ogg
6304 09 Hitomi Ni Utsuru Mono.ogg
6976 01 In The Air.ogg
7200 03 Blame.ogg
7484 07 Nemuri Ni Yosete.ogg
7744 08 Kaze No Yukue.ogg
8128 06 Inner Core.ogg
11428 10 White Feathers.ogg
firas@Ana ~/L'Arc-en-Ciel/1994 - tierra $ du * | sort -n | head -n 1
6044 02 All Dead.ogg
firas@Ana ~/L'Arc-en-Ciel/1994 - tierra $ du * | sort -n | head -n 1 | cut -f 2
02 All Dead.ogg
firas@Ana ~/L'Arc-en-Ciel/1994 - tierra $ rm "`du * | sort -n | head -n 1 | cut -f 2`"
firas@Ana ~/L'Arc-en-Ciel/1994 - tierra $ ls
01 In The Air.ogg 05 Blurry Eyes.ogg 08 Kaze No Yukue.ogg
03 Blame.ogg 06 Inner Core.ogg 09 Hitomi Ni Utsuru Mono.ogg
04 Wind Of Gold.ogg 07 Nemuri Ni Yosete.ogg 10 White Feathers.ogg
Et voilà Même pas besoin de script.
Dernière modification par HymnToLife (Le 02/10/2007, à 19:50)
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#8 Le 02/10/2007, à 20:12
- madrippeur
Re : Effacer le fichier le plus petit
Une seul chose à dire :
VOUS ME TROUEZ LE BEC !
Bah jsais pas quoi dire ... mis à part merci !
C'est exactement ce qu'il me faut !
Bon j'ai tout de même opté pour la solution de HymnToLife qui me permet de mettre en place facilement ça dans un script (oui parce qu'il faut que je passe par un script )
Bah merci à la communauté, et merci à vous de vos réponses.
edit : je tiens à préciser que j'ai compris ce que j'ai fais et je n'ai pas recopié bêtement une ligne de code, c'est trés important aussi.
Dernière modification par madrippeur (Le 02/10/2007, à 20:13)
Hors ligne
#9 Le 02/10/2007, à 20:27
- Ban
Re : Effacer le fichier le plus petit
Bah merci à la communauté, et merci à vous de vos réponses.
edit : je tiens à préciser que j'ai compris ce que j'ai fais et je n'ai pas recopié bêtement une ligne de code, c'est trés important aussi.
De rien de ma part, j'aime beaucoup jouer avec ce genre de pbs
Et tu as tout à fait raison, il faut comprendre ce que l'on fait, sinon comment en tirer réellement qqch ?
Si ton problème est résolu, pense à ajouter [résolu] dans le titre
Au fait, en suivant l'idée de HymnToLife, je pense que ceci est sensiblement plus rapide (et pas récursif) :
ls -rS | head -n 1
@++
Ban
PS :
Merci HymnToLife, je ne connaissais pas head Je sens que ça va me servir ^^
Dernière modification par Ban (Le 02/10/2007, à 20:33)
La littérature est un luxe, la fiction une nécessité. - Chesterton
Hors ligne
Pages : 1