Umbenennen mehrerer Dateien durch Hinzufügen einer Zeichenfolge am Anfang

20

Für ca. 200 Dateien in einem Verzeichnis möchte ich den String 1_an den Anfang aller Dateinamen setzen.

Die Dateinamen sind zum Beispiel DATASET_X_Y_Zund das Ergebnis sollte sein 1_DATASET_X_Y_Z.

Ich weiß nichts über Shell-Skripte, aber vielleicht gibt es einen Einzeiler für das Terminal.

Macydanim
quelle
Bei @Rinzwind-Link geht es um eine andere Frage. Bei der Macydanim-Frage geht es darum, Zeichenfolgen vor Dateinamen und nicht vor Dateiinhalten zu stellen.
jc

Antworten:

37
  • rename 's/^/1_/' * zum Umbenennen aller Dateien im aktuellen Verzeichnis

oder

  • rename 's/^/1_/' DATASET*zum Umbenennen aller Dateien im aktuellen Verzeichnis, beginnend mit DATASETihrem Namen

Erläuterung: Der Ausdruck s/^/1_/lautet: "Ersetzen Sie den Anfang des Dateinamens (dh dieses Symbol -> ^) durch 1_".

dAnjou
quelle
Wenn Sie renamedies nicht sofort tun, müssen Sie installieren prename(PERL-Umbenennung).
user1359
14

Sie können alle Dateien im aktuellen Verzeichnis einfach umbenennen (vorausgesetzt, Sie verwenden bash):

for i in *; do mv "$i" 1_"$i"; done

nimm es offensichtlich mit Vorsicht an; Es werden ALLE Dateien im aktuellen Verzeichnis, die 'sichtbar' sind, neu gespeichert (Dateiname beginnt nicht mit '.')

karlacio
quelle
Dies ist die erste richtige Lösung, die ich gefunden habe und die verwendet werden kann, um so etwas wie .csveine Teilmenge von Dateien mit einem geänderten Platzhalterausdruck anstelle von anzuhängen *. +1
Zelphir Kaltstahl
Wow! Loops auf der CLI! Das ist neu. :)
Raymond Wachaga
9

Sie können pyRenamer verwenden . Es befindet sich im Ubuntu Software Center. Bildbeschreibung hier eingeben Das ursprüngliche Dateimuster sollte {X} und das umbenannte Dateimuster 1_ {1} sein.

nickguletskii
quelle
Eines meiner Lieblingsprogramme
Allan