2009-03-13 4 views

Répondre

4

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.

+0

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? –

+0

J'ai mis à jour la réponse pour inclure un script shell. – jedberg

Questions connexes