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 27/11/2021, à 21:46

Yvance77

[Résolu] Renommer des fichiers dans des sous-répertoires

Bonjour,

J'ai dans un dossier MUSIQUE plusieurs sous-dossiers qui sont des albums. Avec des titres comme : ACDC (1978) - HIGHWAY TO HELL puis ACDC (1981) - BACK IN BLACK etc...

Dans chacun des sous-dossiers j'ai un fichier z-jpeg ou z.jpg qui correspond à la couverture du de l'album.

Il me faut renommer tous les fichiers z.jpeg ou z.jpg par folder.jpeg ou folder.jpg. Comme j'ai un millier d'albums, je ne peut pas tout faire à la main.

Je ne sais pas comment procéder.

Toutes mes tentatives sont vaines avec ce script qui comporte des erreurs et que je ne peux corriger

#!/bin/bash
for file in *z.**; do
   if [ -d $file ]
   then
         cd $file
         ../script
   else
         mv $file ${file/z/folder}
   fi
done

*** folder.jpg ou jpeg représente la jaquette et non pas le nom du dossier qui lui restera le même. Voici l’arborescence :

FLAC1.png

FLAC2.png



Merci de vos lumières

Dernière modification par Yvance77 (Le 28/11/2021, à 19:59)


A trop vouloir faire de l'économie un idéal, nous faisons l'économie de l'Idéal !
Manjaro 20.01 - Mate 64 bits
CM : MSI B550 Tomahawk -- Proc : Ryzen 3600 6 coeurs -- CG : ATI Radeon RX550 -- RAM : Kingstone DDR4

Hors ligne

#2 Le 28/11/2021, à 00:36

Sciensous

Re : [Résolu] Renommer des fichiers dans des sous-répertoires

un truc vite fait, à tester:

for f in **/z.jp*;do cp "$f" "$(basename $(dirname $f)).jpg";done

si c'est ok, tu peux effacer les z.jp* ensuite
(il aurait été possible de mettre mv à la place de cp, mais à tester avant )
cool

Dernière modification par Sciensous (Le 28/11/2021, à 00:36)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#3 Le 28/11/2021, à 00:40

Watael

Re : [Résolu] Renommer des fichiers dans des sous-répertoires

ça ne descendra pas dans les sous-répertoires si tu ne positionne pas globstar.

Dernière modification par Watael (Le 28/11/2021, à 00:41)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 28/11/2021, à 00:45

Sciensous

Re : [Résolu] Renommer des fichiers dans des sous-répertoires

ok (je n'utilise pas les globstar), alors:

find MUSIQUE -type f -name "z.jp*" -exec cp "{}" "$(basename $(dirname "{}")).jpg" \;

est-ce mieux ?

Dernière modification par Sciensous (Le 28/11/2021, à 00:45)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#5 Le 28/11/2021, à 02:15

Yvance77

Re : [Résolu] Renommer des fichiers dans des sous-répertoires

Bonjour

Excusez moi, je ne comprends pas ou je dois mettre le mot "folder", pour que tous les fichiers soient renommer de z.jpg à folder.jpj ?


J'ai bien tenté un truc ainsi que j'ai tourvé sur ce site :

yvance@yvance /M/M/FLAC> find . -name z.jpg -exec rename 's/z.jpg$/folder.jpg/' {} \;

Mais voici le résultat :

Exécutez « rename --help » pour obtenir des renseignements complémentaires.
rename: pas assez d'arguments

EDIT :

Après moult recherches ceci a résolu mon souci qui traînait (pas trouvé avant, et cela fait deux mois que je suis dessus)


toto2006 a écrit :

Cool si ca marche alors avec mmv (que je ne connais pas) .

Sinon effectivement l'erreur est due aux espaces  , a titre d'info , je pense que  l'utilisation des guillemets devrait résoudre le problème .

renom.sh

 mv "$1" "`dirname "$1"`/folder.jpg"
find . \( -name '*.jpg' -o -name '*.JPG' \) -exec ./renom.sh {} \;

https://forum.ubuntu-fr.org/viewtopic.php?id=76875


Merci encore de vos contributions

Dernière modification par Yvance77 (Le 28/11/2021, à 08:04)


A trop vouloir faire de l'économie un idéal, nous faisons l'économie de l'Idéal !
Manjaro 20.01 - Mate 64 bits
CM : MSI B550 Tomahawk -- Proc : Ryzen 3600 6 coeurs -- CG : ATI Radeon RX550 -- RAM : Kingstone DDR4

Hors ligne

#6 Le 28/11/2021, à 11:32

Sciensous

Re : [Résolu] Renommer des fichiers dans des sous-répertoires

ok je croyais que tu voulait le nom du folder et non folder lui-même big_smile

du coup c'était plus simple !

find MUSIQUE -type f -name "z.jpg" -exec ln "{}" folder.jpg \;
find MUSIQUE -type f -name "z.jpeg" -exec ln "{}" folder.jpeg \;

un hardlink (ln) pour tester, si c'est bon il suffirait de remplacer ln par mv (le renommage est en fait un déplacement)

enfin, si c'est bon, modifie le titre pour indiquer que c'est résolu

Dernière modification par Sciensous (Le 28/11/2021, à 11:33)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne