Pages : 1
#1 Le 12/02/2023, à 16:30
- Applejuice
Find exec et extensions
Bonjour,
J’ai répertoire avec des fichiers *.JPG et des fichiers *.RAF (version raw du *.JPG chez Fujifilm).
À certains *.RAF correspondent un *.JPG. Le suffixe du fichier .JPG est le même que le .RAF auquel il se rapporte ET il y a des .RAF sans .JPG correspondant.
Exemple :
ls -1
122.RAF
123.JPG
123.RAF
124.JPG
124.RAF
125.RAF
126.RAF
127.RAF
Je voudrais déplacer tous les fichiers .RAF auxquels correspond un fichier .JPG dans un autre répertoire (ici, les 123.JPG et 124.JPG).
Je pensais faire une ligne de commande find « trouver les fichiers .JPG » et exec « déplace les fichiers .RAF correspondant ».
Du genre
find . -iname "*.jpg" -exec mv {} ./nouveaurepertoirre \;
Mais avec un {} dont on aurait changé le .JPG en .RAF.
Est-ce possible ?
Merci de votre lecture.
Hors ligne
#2 Le 12/02/2023, à 16:42
- Watael
Re : Find exec et extensions
salut,
bof, bof. un find pour une recherche sans sous-répertoires est peu efficace, sans compter la contrainte d'une recherche de correspondance.
#!/bin/bash
src=./
dest='/chemin/repertoireDestination'
toMove=RAF
toMatch=JPG
files2check=( "$src/"*".$toMove" )
for f in "${files2check[@]}"
do
test -f "${f%.*}.$toMatch" && mv "$f" "$dest/"
done
Dernière modification par Watael (Le 12/02/2023, à 16:42)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 12/02/2023, à 19:38
- Applejuice
Re : Find exec et extensions
Salut Watael,
J'ai essayé ton script et, en effet, il sélectionne les fichiers RAF que je veux déplacer à partir de la présence d'un JPG.
Génial !!
Merci.
Cependant, j'ai modifié la ligne du répertoire de destination en
dest='/bon'
j'ai déposé le script (que j'ai appelé temporairement "script.bash") dans bin, j'ai créé un dossier "bon" dans le répertoire de mes photos et
fredo@fredo:~$ cd Bureau/Photos
ensuite
fredo@fredo:~/Bureau/Photos$ script.bash
mv: impossible de déplacer './/123.RAF' vers '/bon/': N'est pas un dossier
mv: impossible de déplacer './/124.RAF' vers '/bon/': N'est pas un dossier
J'ai essayé avec './bon' et cela donne le même résultat.
EDIT :
Avec
dest='.//bon'
ça marche.
Dernière modification par Applejuice (Le 12/02/2023, à 19:42)
Hors ligne
#4 Le 12/02/2023, à 21:07
- Watael
Re : Find exec et extensions
dans un script, il vaut mieux toujours indiquer des chemins absolus (opposés aux chemins relatifs, stfw!)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne