Vous pouvez écrire un script shell rapide pour le faire pour vous. Pour obtenir le nom du dossier en cours:
pwd|awk -F'/' '{print $NF}'
et pour obtenir le parent du dossier en cours:
pwd|awk -F'/' '{SL = NF-1; print $SL}'
Mise à jour
Créez un fichier qui ressemble à ceci:
#!/bin/bash
for f in `find . -name '*jpg'`
do
filename=`echo $f|awk -F'/' '{SL = NF-1; TL = NF-2; print $TL "_" $SL "_" $NF}'`
cp $f newfolder/$filename
done
puis faites chmod +x
dessus. Exécutez le script au plus haut niveau. Dans ce cas, vous devez définir la destination, newfolder, à l'avance.
J'ai pris cette structure de répertoire:
./bar
./bar/baz
./bar/baz/1.jpg
./bar/baz/2.jpg
./bar/baz/3.jpg
./bar/buz
./bar/buz/1.jpg
./bar/buz/2.jpg
./bar/buz/3.jpg
./foo
./foo/baz
./foo/baz/1.jpg
./foo/baz/2.jpg
./foo/baz/3.jpg
./foo/buz
./foo/buz/1.jpg
./foo/buz/2.jpg
./foo/buz/3.jpg
et en fait ceci:
./newfolder/bar_baz_1.jpg
./newfolder/bar_baz_2.jpg
./newfolder/bar_baz_3.jpg
./newfolder/bar_buz_1.jpg
./newfolder/bar_buz_2.jpg
./newfolder/bar_buz_3.jpg
./newfolder/foo_baz_1.jpg
./newfolder/foo_baz_2.jpg
./newfolder/foo_baz_3.jpg
./newfolder/foo_buz_1.jpg
./newfolder/foo_buz_2.jpg
./newfolder/foo_buz_3.jpg
espérance qui est ce que vous recherchez.
Merci beaucoup pour votre aide rapide. Pourriez-vous élaborer un peu plus. devrais-je créer un fichier batch pour cela? ou comment l'exécuter? –
J'ai mis à jour la réponse pour inclure un script shell. – jedberg