J'ai fait un petit script pour sauver un peu d'espace pour mes photos:
#On fous tous les fichiers .jpg du répertoire courant dans une variable
fichiers=`ls -l | grep .jpg`
#Compteur qui servira pour choisir un fichier différent à chaque passage de la boucle.
compteur=0
#Nombre de fichiers .jpg dans le répertoire courant
nbfichiers=`ls -1 | grep .jpg | wc -l`
#Boucle qui prend le nom du fichier, le compresse et le fous dans le dossier compresse.
if [ -w compresse ];then
sleep 0
else
mkdir compresse
echo 'Répertoire "compresse" créé.'
fi
while [ $compteur != $nbfichiers ]; do
let compteur=compteur+1
fichier=`echo $fichiers | cut -d \ -f$compteur`
convert -quality 90 $fichier ./compresse/$fichier
echo "La photo $fichier vient d'être compressée."
done
J'ai fait le test avec 2-3 photos dans un répertoire et tout marchait à la perfection. Par contre, je me suis aperçu que ça ne marchait pas dès qu'il y avait des fichiers avec des espaces. Je sais d'où vient le problème et vous le verrez assez vite (cut sépare les «fichier par un espace»... Donc photo noel.jpg serait 2 fichiers distincts selon mon script.).
Peut-être existe-t-il une solution plus simple? Sinon... J'aurais pensé de sortir le ls en lignes et de prendre chaque ligne comme nom de fichier pour la boucle, mais je ne sais pas très bien comment faire.
Merci de m'aider...
--Un débutant
# mode gruik
Posté par Cereal Killer . Évalué à 1.
for i in *.jpg
do
mv "$i" `echo $i | tr ' ' '_'` 2>/dev/null
done
# un truc du genre?
Posté par Calim' Héros (site web personnel) . Évalué à 3.
[^] # Re: un truc du genre?
Posté par Calim' Héros (site web personnel) . Évalué à 4.
# Conseil de lecture pour le bash :
Posté par Calim' Héros (site web personnel) . Évalué à 2.
http://www.tldp.org/LDP/abs/html/
# mode find
Posté par Cereal Killer . Évalué à 5.
[^] # mode jmefaivraimentchier
Posté par Cereal Killer . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.