#1 Le 31/12/2022, à 01:12
- jose6a
déplacement de tous les fichier *.png d'une arborescence vers dossier
Bonjour,
c'est surement pas très compliqué, mais, j'aimerais, en ligne de commande
déplacer (je crois que c'est la commande MV) tous les fichiers d'un type donné jpg, png, pdf, etc etc se trouvant dans un répertoire ET les sous répertoires
vers un répertoire unique, et si des fichiers portent le même nom, renommer automatiquement avec un nombre (toto.jpg et toto(1).jpg par exemple)
Merci pour votre aide.
çà sera une bonne chose de commencer 2023 en connaissant la commande pour faire ces déplacements.
Bonne année !
Merci
José
Linux jose6a-HP-Laptop-15-fc0xxx 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Hors ligne
#2 Le 31/12/2022, à 01:39
- Vobul
Re : déplacement de tous les fichier *.png d'une arborescence vers dossier
La première partie c'est facile. C'est le fait de renommer qui devient plus complexe.
Par exemple, si tu fais :
mkdir -p src/{a,b}
touch src/a/toto.jpg
touch src/b/toto.png
touch src/b/toto.jpg
mkdir dest
find src -type f \( -iname '*.jpg' -o -iname '*.png' -o -iname '*.pdf' \) -exec cp --backup=t {} dest \;
Tu obtiens dans dest, toto.jpg, toto.jpg.~1~ et toto.png.
Donc à partir de là, soit tu remplaces la commande cp par un script un peu plus évolué qui va correctement renommer le fichier (en gardant bien l'extension, pas comme ce débile de cp qui te rajoute un truc à la fin comme un gros sagouin), soit tu commences par regarder si des fichiers ont le même nom dans un premier temps pour t'éviter de perdre du temps pour un problème que tu n'as peut-être pas, ou qui ne concerne peut-être que 3 fichiers :
find src -type f | awk -F/ '{print $NF}' | sort -f | uniq -i -d
Ça te donne "toto.jpg" qui est notre fichier qui est à la fois dans a/ et b/. Donc après tu peux le find à nouveau pour avoir son chemin complet et le renommer à la main. À voir si t'as 480.000 fichiers ou pas bien sûr.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne