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 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 smile
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 ? smile
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 wink

Je pense que ta réponse peut m'aider effectivement wink
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 wink

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

#!/bin/bash

liste=$(ls -S)
liste=${liste##*"
"}

echo $liste # affiche le résultat

ce qui met le plus petit fichier dans $liste smile
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à smile 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 smile )

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

madrippeur a écrit :

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 tongue

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 wink


Au fait, en suivant l'idée de HymnToLife, je pense que ceci est sensiblement plus rapide wink (et pas récursif) :

ls -rS | head -n 1

@++
Ban

PS :
Merci HymnToLife, je ne connaissais pas head hmm 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