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.



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_".


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 '.')


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.