Dateinen umbenennen

M

mahed

Aktives Mitglied
Thread Starter
Dabei seit
26.03.2006
Beiträge
411
Reaktionspunkte
1
Hallo zusammen
Ich habe alpha.inp, alpha.dat und alpha.log in einem Verzeichnis.
Wie kann ich diese am besten mit einem Befehl zu alpha-ini.inp, alpha-ini.dat und alpha-ini.log umbenennen?

Vielen Dank für hilfreiche Beiträge
 
Z.B. mit dieser App:

Rename

Have fun! :D
 
Hm, ich habe gehofft, das lässt sich irgendwie mit einem BASH Befehl ausführen, insbesondere deshalb weil ich so gut wie immer auch über SSH arbeite.
Danke trotzdem für den Beitrag.
 
Hallo,

im Terminal in das entsprechende Verzeichnis wechseln und dann
$ mv alpha.inp alpha-ini.inp
$ mv alpha.dat alpha-ini.dat
$ mv alpha.log alpha-ini.log
zum Beispiel.

Viele Grüße
 
ja, so mache ich das bisher, wird aber auf dauer unbequem. Ich hoffte, da gibt es einen trick mit wildcards o.ä.
 
dann packst du genau diese drei Befehle in ein Shellscript :D

Aber da das vermutlich nicht ist, was du willst, musst du erst mal genauer sagen, was du willst... :rolleyes:
 
Ich habe gehofft, es ist etwas in dem Stil möglich:
PHP:
mv alpha.* alpha-bit.*

wobei sich alpha.dat, alpha.inp und alpha.log im Verzeichnis befinden.
Das Ergebnis sollte dann sein alpha-bit.dat, alpha-bit.inp und alpha-bit.log.
D.h. die jeweiligen Dateiendungen sollten wieder dementsprechend vorhanden sein.
 
Im Ernst: wenn es nur das ist, warum packst du die 3 Zeilen nicht in ein shellscript ? Dann musst du sagar noch weniger tippen...
 
Naja, 20 mal 3 zeilen gibt dann schon was zu tun.
 
hilft das?
quarkstar.at/mac-shell-script-mehrere-dateien-umbenennen/
 
genau. wunderbar, danke.
 
Mit der Z Shell gehts wieder mal einfacher.
Wenn man in ~/.zshrc 'autoload zmv' stehen hat, genügt
zmv '(alpha).(*)' \$1-ini.\$2

Das ganz normale mv geht übrigens auch mit weniger Tipparbeit.
Anstelle von
mv alpha.inp alpha-ini.inp
geht
mv alpha{,-ini}.inp
 
PHP:
for d in Bild*.jpg; do mv $d ${d/Bild/Urlaub-Italien-2007-};done

Der Befehl führt genau zu dem Ergebnis, das ich gesucht habe. Bin aber nicht sicher, ob ich die Syntax verstehe, also for-Schleife ist klar, 'd' nimmt jedes Item aus Bild*.jpg-Menge auf, dann 'mv' auf 'd' aufrufen, der Befehl in den geschweiften Klammern ist mir aber ein bisschen unklar. Was bedeuten die Schrägstriche hier?

Vielen Dank für die Postings soweit.
 
Er nimmt aus dem gefundenen Dateinamen das "Bild" heraus und ersetzt es gegen "Urlaub-Italien-2007-"

Code:
[]$ touch Bild-1.jpg Bild-2.jpg Bild-3.jpg
[]$ ll
total 0
drwxr-xr-x   5 a  staff   170 21 Apr 09:50 ./
drwx------  49 a  staff  1734 21 Apr 09:50 ../
-rw-r--r--   1 a  staff     0 21 Apr 09:50 Bild-1.jpg
-rw-r--r--   1 a  staff     0 21 Apr 09:50 Bild-2.jpg
-rw-r--r--   1 a  staff     0 21 Apr 09:50 Bild-3.jpg
[]$ for d in Bild*.jpg; do mv $d ${d/Bild/Urlaub-Italien-2007-};done
[]$ ll
total 0
drwxr-xr-x   5 a  staff   170 21 Apr 09:50 ./
drwx------  49 a  staff  1734 21 Apr 09:50 ../
-rw-r--r--   1 a  staff     0 21 Apr 09:51 Urlaub-Italien-2007--1.jpg
-rw-r--r--   1 a  staff     0 21 Apr 09:51 Urlaub-Italien-2007--2.jpg
-rw-r--r--   1 a  staff     0 21 Apr 09:51 Urlaub-Italien-2007--3.jpg

für Deinen Fall also:

Code:
for d in alpha.*; do mv $d ${d/alpha/alpha-ini};done
 
Zuletzt bearbeitet:
PHP:
for d in Bild*.jpg; do mv $d ${d/Bild/Urlaub-Italien-2007-};done

Der Befehl führt genau zu dem Ergebnis, das ich gesucht habe. Bin aber nicht sicher, ob ich die Syntax verstehe, also for-Schleife ist klar, 'd' nimmt jedes Item aus Bild*.jpg-Menge auf, dann 'mv' auf 'd' aufrufen, der Befehl in den geschweiften Klammern ist mir aber ein bisschen unklar. Was bedeuten die Schrägstriche hier?

Vielen Dank für die Postings soweit.

die Klammer gibt an, in was es umbenannt werden soll! Also hier wohl "Urlaub-Italien-2007"
 
Zurück
Oben Unten