Hulp bij hernoemen bestanden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Bombelman
  • Registratie: Februari 2003
  • Laatst online: 10-01-2010
Beste allen,

Ik heb een serie met een tiental mapjes, waarin diverse jpg-bestanden in zitten.
Ik wil, zonder dat ik elk afzonderlijk mapje in moet, de voorvoegsel (prefix) aan de
bstandsnamen toevoegen. Dit vanuit de root via command-line, of eventueel middels PHP...

Ik heb vanuit commandline al enkele van de onderstaande opties gebruikt, geen echt die
het resultaat leverde waar ik naar op zoek was, ze kwamen wel dichtbij..

Bash:
1
2
3
for i in * ; do mv $i med_${i#}
find *.jpg  -exec mv {} med_{} \;
find . -name \*.jpg -exec cp -n '{}' med_'{}' \;


Ziet iemand wat ik niet goed doe hier, en/of waar doe ik het verkeerd ?
Eventueel kan ik het ook doen met ls en het resultaat pipen, maar dit was zo lang geleden voor mij.. :P

Mogelijkerwijst kan het ook met php gebeuren, als het via commandline niet zo handig is.
De server is een web-server op CentOS.
Mapjes zien er zo uit:
/map01/file01.jpg
/map01/file02.jpg
/map02/file01.jpg
/map02/file02.jpg etc...

Ik hoop dat het duidelijk is... Mijn dank is uitermate groot !
Doeg !

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Je bedoelt zoiets, enkel dan met mv ipv echo?
Bash:
1
for i in */*.jpg; do echo "$i" "$(dirname "$i")/med_$(basename "$i")"; done

Wat doet een cp -n?

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Bombelman
  • Registratie: Februari 2003
  • Laatst online: 10-01-2010
met echo lijkt het goed te gaan, ik krijg te zien wat ik wil doen.
met mv krijg ik echter:

mv: cannot stat `*/*.jpg': No such file or directory

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Dat krijg je als je in de verkeerde directory staat, zonder vindbare bestanden. Klinkt als een gevaarlijke actie om niet eerst de directory goed te checken voordat je zo'n mv doet.. Ik zou daarnaast mv -i aanraden, als dat niet default is. ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Bombelman
  • Registratie: Februari 2003
  • Laatst online: 10-01-2010
Ik hoef toch niet in elk mapje te gaan ?

Ik ben in de "root", dat is 1 mapje boven al deze genummerde mappen met de bestanden erin....
De bestanden zitten in:
/map01/file01.jpg
/map01/file02.jpg
/map02/file01.jpg
/map02/file02.jpg etc...
Ik voer het commando uit vanuit /

Thanks !

Acties:
  • 0 Henk 'm!

  • Bombelman
  • Registratie: Februari 2003
  • Laatst online: 10-01-2010
Bash:
1
for i in */*.jpg; do mv -i "$i" "$(dirname "$i")/med_$(basename "$i")"; done

Heeft gewerkt !!

Acties:
  • 0 Henk 'm!

  • Bombelman
  • Registratie: Februari 2003
  • Laatst online: 10-01-2010
Ik heb dus "mv -i" gebruikt ipv "mv" alleen !

Ik heb een gerelateerde vraag, als ik dat hier mag stellen:
Ik doe met dit bovenstaande commando de voorvoegsels toevoegen aan 3 series van mapjes met foto's, versies met "sm_", "med_" en "lg_" als prefix.

In een mapje "Medium" zitten dus nu:
/map01/med_file01.jpg
/map01/med_file02.jpg
/map02/med_file01.jpg
/map02/med_file02.jpg etc...
en zo heb ik ook een mapje "Small" en een mapje "Large" met dezelfde mappenstructuur, maar daar hebben de .JPG bestanden een ander voorvoegsel (sm_ en lg_ resp.).

De vraag: Hoe kan ik deze allemaal "mergen" in 1, zodat ik een map krijg, waar daar ook weer de genummerde mappen in zitten met daarin dan de sm_, med_ en lg_ versies in staan....

Dit kan in een aparte map gebeuren, maar mag ook in 1 van boven genoemde mapjes...
Thanks !!

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Bombelman schreef op woensdag 06 januari 2010 @ 19:40:
Ik heb dus "mv -i" gebruikt ipv "mv" alleen !
Dat zorgt er alleen maar voor dat je niet per ongeluk iets overschrijft. Voor de rest zou gewoon mv ook moeten werken. ;)
offtopic:
Gebruik de Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/edit.gif-knop als je binnen 24u iets wil toevoegen aan de laatste post. ;)
De vraag: Hoe kan ik deze allemaal "mergen" in 1, zodat ik een map krijg, waar daar ook weer de genummerde mappen in zitten met daarin dan de sm_, med_ en lg_ versies in staan....
Zie hier (dus gebruik rsync -av --move-source-files src/ dest/), of gebruik gewoon een visuele omgeving als dat kan. :)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 07-10 14:25

Creepy

Tactical Espionage Splatterer

Even een tikje door naar Non-Windows Operating Systems. Daar zitten over het algemeen meer bash en shell kenners dan hier. Move PRG -> NOS

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1