Forum: PC-Programmierung [LINUX] Datein umbenennen


von Denny S. (Gast)


Lesenswert?

Hallo!

Wie kann ich mit einem Rutsch unter Linux alle Datein mit dem Namen:
Folder.jpg in cover.jpg umbenennen?
Incl. aller Unterverzeichnisse!

Danke

von ... (Gast)


Lesenswert?

find . -name "Folder.jpg" -exec mv {} cover.jpg \;

von Denny S. (Gast)


Lesenswert?

Danke

von Sven P. (Gast)


Lesenswert?

1
$ find -name Folder.jpg -execdir mv Folder.jpg cover.jpg \;

ACHTUNG *ACHTUNG* ACHTUNG ...
Der Vorschlag von '...', das haut so NICHT hin!

von yalu (Gast)


Lesenswert?

Z.B. so:
1
find -name Folder.jpg -exec rename Folder.jpg cover.jpg {} \;

von Denny S. (Gast)


Lesenswert?

und wie dann?

von Sven P. (Gast)


Lesenswert?

ACHTUNG *ACHTUNG* ACHTUNG
Der Vorschlag von 'yalu' ist ebenfalls falsch!

So funktionierts (hab ich in meinem ersten Beitrag auch geschrieben):
1
$ find -name Folder.jpg -execdir mv Folder.jpg cover.jpg \;

Der Unterschied ist -exec zu -execdir. Mit -exec kriegt der mv-Befehl 
absolute Pfadangaben als Quelle und 'cover.jpg' als Ziel. Das bewirkt 
dann, dass er die Dateien aus ihren Unterverzeichnissen nacheinander 
nach 'cover.jpg' im aktuellen Verzeichnis (von wo find aufgerufen wurde) 
verschiebt. Damit werden die Original-Cover-Dateien effektiv gelöscht 
(da immer wieder auf dieselbe Datei geschoben), lediglich die letzte 
gefundene bleibt über.

Mit -execdir wechselt find zuerst ins Verzeichnis der gefundenen Datei, 
bevor der mv-Befehl aufgerufen wird, dadurch hat das Ganze dann hin.

von Denny S. (Gast)


Lesenswert?

Ja so funzt es!

Danke
Gruß Denny

von yalu (Gast)


Lesenswert?

Sven Pauli brüllte:

> ACHTUNG *ACHTUNG* *ACHTUNG*
> Der Vorschlag von '...', das haut so NICHT hin!

> ACHTUNG *ACHTUNG* *ACHTUNG*
> Der Vorschlag von 'yalu' ist ebenfalls falsch!

Jawoll Sir, wir haben's verstanden!!!

Danke, dass du in meinem Fall wenigstens die zweite Zeile in normaler
Lautstärke vorgetragen hast ;-)

@Denny S.:

Ja, der Lauteste hat immer recht. Mein Vorschlag funktioniert nur dann,
wenn 'Folder.jpg' nur als Dateiname, nicht aber als Teil eines anderen
Datei- oder Verzeichnisnamens auftaucht. Svens Lösung ist schon die
richtige.

von Sven P. (Gast)


Lesenswert?

yalu wrote:
> Ja, der Lauteste hat immer recht. Mein Vorschlag funktioniert nur dann,
> wenn 'Folder.jpg' nur als Dateiname, nicht aber als Teil eines anderen
> Datei- oder Verzeichnisnamens auftaucht. Svens Lösung ist schon die
> richtige.
Vorsicht, der funktioniert auch dann nicht!
Du schiebst dir damit alle Folder.jpg-Dateien zusammen.

von yalu (Gast)


Lesenswert?

> Vorsicht, der funktioniert auch dann nicht!
> Du schiebst dir damit alle Folder.jpg-Dateien zusammen.

Nein, das macht nur der Vorschlag von '...'. Schau mal hier:

  man rename

Aber wie gesagt, ich ziehe meinen Vorschlag trotzdem zurück, weil er
eben nicht in allen Fällen funktioniert. Dass das mit -execdir viel
einfacher geht, war mir entfallen.

von Sven P. (Gast)


Lesenswert?

Stimmt, wenn man nicht gerade das Alias 'rename' benutzt, das auf 'mv' 
zeigt schmunzel
Dann aber bitte

... rename 's/Folder\.jpg/cover.jpg/'

von yalu (Gast)


Lesenswert?

> Dann aber bitte
>
> ... rename 's/Folder\.jpg/cover.jpg/'

Das funktioniert bei mir wiederum nicht :)

Du scheinst das Perl-Rename installiert zu haben, bei mir ist es das
Rename aus util-linux-ng. Die beiden haben unterscheidliche Aufrufe.

von brizz (Gast)


Lesenswert?

RegExp war nie meine Stärke, aber felt da nicht ein \?
Also nicht:
> ... rename 's/Folder\.jpg/cover.jpg/'
Sondern:
> ... rename 's/Folder\.jpg/cover\.jpg/'

von Sven P. (Gast)


Lesenswert?

Hab ich mich auch gefragt, aber eigentlich nicht, weil der zweite Teil 
ja kein Regexp mehr ist, sondern der Ersetzungstext.

von brizz (Gast)


Lesenswert?

> Hab ich mich auch gefragt, aber eigentlich nicht, weil der zweite Teil
> ja kein Regexp mehr ist, sondern der Ersetzungstext.
Ist was dran, naja, sowas würde ich eh in einem Testordner mit
Testdateien ausprobieren... ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.