J'ai un tas d'images qui ont été renommées de myimage.jpg
à myimage.jpg_backup
, de sorte que les images de mon site Web ne se chargent plus. Comment pourrais-je trouver récursivement toutes les images se terminant par _backup
et ne supprimer que la partie _backup
tout en préservant le reste du nom de fichier?
J'ai essayé quelque chose comme ça:
Sudo find . -name "*.jpg_backup" -exec rename -n 's/_backup$//' *.jpg_backup ';'
mais cela me donne une erreur:
Can't rename *.jpg_backup *.jpg: No such file or directory
essayez rename -v 's/\.jpg_backup$/\.jpg/' *.jpg_backup
le -v vous donne une sortie détaillée. voir ici comment renommer
Dans un terminal , allez dans le répertoire où se trouvent ces fichiers (avec cd /path/to/folder
). Si les fichiers ne contiennent pas d'espaces ni de caractères spéciaux \[*?
, exécutez la commande suivante:
for file in `find . -name *.jpg_backup` ; do mv "$file" "${file%_backup}"; done
Si vous pensez que les noms de fichiers contiennent des espaces ou des caractères globaux, utilisez:
find . -type f -name '*.jpg_backup' -print0 \
| while IFS= read -r -d '' file ; do mv -- "$file" "${file%_backup}"; done
ou:
shopt -s globstar;
for file in /path/to/folder/**/*.jpg_backup ; do mv -- "$file" "${file%_backup}"; done
Les commandes ci-dessus trouveront de manière récursive tous les fichiers *.jpg_backup
du dossier et des sous-dossiers actuels et les renommeront en *.jpg
. Le dernier se penche également sur les liens symboliques vers les répertoires.