Forum
Tipps
News
Menu-Icon

Suse: Dateien umbenenen

Hallo zusammen,

eigentlich habe ich ein recht triviales Problem:

Ich möchte einfach nur alle Dateien in einem Verzeichnis
von z.B. *.bla in *.blub umbenennen. Ich habe es schon mit mv und rename versucht, aber es passiert gar nichts.
Testet es bei euch mal aus. Falls jemand einen Tip hat, bitte melden. :)

 


Antworten zu Suse: Dateien umbenenen:

Hallo,

ich weiss nicht ob ich das richtig verstanden habe.
Aber wenn Du mit der rechten Maustaste auf die Datei klickst kannst Du im Menue mit "Umbenennen" den Dateinamen ändern.

Währe natürlich in der Konsole einfacher.

Gruss
joh

du must dann dazu sagen, dass du konqueror meinst.
sonst kapiert dich keiner ;)

Zur Ergänzung:

Ich möchte die Dateien nicht einzeln umbenennen, sondern in einem Rutsch ! Das man die Dateien einzeln umbenennen kann ist selbst mir klar ;) Im Ernst es geht also wirklich darum die Dateien in einem Rutsch umzubenennen. Warum muss ich da Shell-Scripte lernen,  ein einfach Befehl wie z.B. rename *.bla to *.blub sollte normalerweise funktionieren, tut er aber leider nicht.

« Letzte Änderung: 12.08.04, 14:02:38 von Lucky »

Hoi,
ich bin's wieder

erzeuge mal eine Datei

"my_rename"

--------------Inhalt-----------------
#!/bin/bash
# schauen ob es zwei extensions gibt
# 1. ist ursprung
# 2. ist ziel
if [ $# != 2 ] ; then
  echo "$0 Quelle Ziel eingeben"
  exit 1
fi

# jetzt in einer schleife umbenennen
for i in *".$1" ; do
  mv ${1%".$1"} ${1%".$2"}
done
-------------Ende--------------------

anschliessend
chmod 777 my_rename
aufrufen

Aufruf der datei
./my_rename <Quelle-Extension> <Ziel-Extension>
oder
/pfad/zum/script/my_rename blablabla

oder das script nach /usr/bin kopieren
und einfach mit

my_rename blablabla

aufrufen

Das Umbenennen kann allerdings nur innerhalb der aktuellen directory erfolgen. Natürlich kannst du das script "refinen"


Grüsse

Ullrich

Sorry kleiner Fehler in der Schleife

NICHT!!!
for i in *".$1" ; do
  mv ${1%".$1"} ${1%".$2"}
done


SONDERN
for i in *".$1" ; do
  mv ${i%".$1"} ${i%".$2"}
done


Sorry nochmal

Ullrich

Sorry kleiner Fehler in der Schleife

NICHT!!!
for i in *".$1" ; do
  mv ${1%".$1"} ${1%".$2"}
done


SONDERN
for i in *".$1" ; do
  mv ${i%".$1"} ${i%".$2"}
done


Sorry nochmal

Ullrich

Hmm so ganz funzt das noch nicht. Wie ist denn der genau Aufruf des Scripts ?
my_rename blah blub
oder
my_rename *.blah blub
oder mit Verzeichnisangabe

Habe unterschiedlichste Varianten getestet aber da kamen dann diverse Fehlermeldungen wie z.B.:

"Beim Verschieben mehrerer Dateien muss das letzte Argument ein Verzeichnis sein."




Ich poste heut abend nochmal,
Im Moment kann ichs nicht ausprobieren,
offensichtlich funktionierts nicht ganz....

Ullrich

Ich poste heut abend nochmal,
Im Moment kann ichs nicht ausprobieren,
offensichtlich funktionierts nicht ganz....

Ullrich

Subbbbbaaa :)

Ich bin nochmal in mich gegangen ...
so was dummes, hab leider um 10 Ecken gedacht :-[
Peinlich Peinlich
----------------------------------------------
#!/bin/bash
# schauen ob es zwei extensions gibt
# 1. ist ursprung
# 2. ist ziel
if [ $# != 2 ] ; then
  echo "$0 Quelle Ziel eingeben"
  exit 1
fi

# jetzt in einer schleife umbenennen
for i in *'.'$1 ; do
  echo "moving: $i ${i%$1}$2"
  mv $i ${i%$1}$2
done
-------------------------------------

Sorry, echt doof von mir...

Schönen Abend

Ullrich

Ich bin nochmal in mich gegangen ...
so was dummes, hab leider um 10 Ecken gedacht :-[
Peinlich Peinlich
----------------------------------------------
#!/bin/bash
# schauen ob es zwei extensions gibt
# 1. ist ursprung
# 2. ist ziel
if [ $# != 2 ] ; then
  echo "$0 Quelle Ziel eingeben"
  exit 1
fi

# jetzt in einer schleife umbenennen
for i in *'.'$1 ; do
  echo "moving: $i ${i%$1}$2"
  mv $i ${i%$1}$2
done
-------------------------------------

Sorry, echt doof von mir...

Schönen Abend

Ullrich

Hey Ullrich.. kein Thema ! Ich bin ja froh, dass du so viel Arbeit investierst !!! Also keine Selbstzerfleischung :)

Also ich habe das srcipt wie folgt aufgerufen:

my_rename blah blub /home/lucky/test und erhielt folgende Fehlermeldung:

mv: Beim Verschieben mehrerer Dateien muss das letzte Argument ein Verzeichnis sein.

Was habe ich falsch gemacht ?

Hoi,

Das script im directory ausführen wo die dateien sind,
also

 
  cd /home/lucky/test
  my_rename blah blub

oder du änderst das script
----------------------------------------------
#!/bin/bash
# schauen ob es zwei extensions gibt
# 1. ist ursprung
# 2. ist ziel
if [ $# -lt 2 ] ; then
  echo "$0 Quelle Ziel eingeben"
  exit 1
fi

if [ $# -ge 3 ] ; then
  prevdir=`pwd`
  if !( cd $3 ) ; then
     echo "invalid directory: $3"
     exit 2
  fi
fi
# jetzt in einer schleife umbenennen
for i in *'.'$1 ; do
  echo "moving: $i ${i%$1}$2"
  mv $i ${i%$1}$2
done
if [ -n "$prevdir" ] ; then
  cd $prevdir
fi
-------------------------------------

Ciao

Ulli

Um auch Dateien mit Leerzeichen im Namen umzubenennen, sollten die Variablen in "" eingeschlossen werden:

#!/bin/bash
# schauen ob es zwei extensions gibt
# 1. ist ursprung
# 2. ist ziel
if [ $# -lt 2 ] ; then
 echo "$0 Quelle Ziel eingeben"
 exit 1
fi

if [ $# -ge 3 ] ; then
 prevdir=`pwd`
 if !( cd "$3" ) ; then
  echo "invalid directory: $3"
  exit 2
 fi
fi
# jetzt in einer schleife umbenennen
for i in *'.'$1 ; do
 echo "moving: $i ${i%$1}$2"
 mv "$i" "${i%$1}$2"
done
if [ -n "$prevdir" ] ; then
 cd $prevdir
fi


« Suse 9.1 Kinternet TeledatX120 UsbSuse: startproblem »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Dateiendungen
Die Dateiendung, auch Dateinamenerweiterung, Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an de...

Dateiendung
Die Dateiendung ist ein Teil des Dateinamen und zeigt das Dateiformat an. Klassisch war die "8.3" Regelung, nach der der Dateiname under MS DOS 8 Zeichen lang sein durfte...

Verzeichnis
Verzeichnisse, oft auch als Ordner bezeichnet, sind essenzielle Strukturelemente in einem Dateisystem, um Dateien und andere Verzeichnisse übersichtlich zu organisie...