Ich möchte allen Ordnern und Verzeichnissen ein Präfix hinzufügen.
Beispiel:
ich habe
Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/
Ich möchte das Präfix "PRE_" hinzufügen.
PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/
Grüße,
Antworten:
Dank Peter van der Heijden ist hier einer, der für Dateinamen mit Leerzeichen funktioniert:
("-" wird benötigt, um mit Dateien erfolgreich zu sein, die mit Bindestrichen beginnen, deren Namen sonst als Schalter für den Befehl mv interpretiert würden.)
quelle
ls
Befehl in ändern*
und die Argumente in doppelte Anführungszeichen setzenmv
, funktioniert dies für Dateien, die Leerzeichen enthalten.Verwenden Sie die Umbenennungs Skript auf diese Weise:
Es gibt keine Probleme mit Metazeichen oder Leerzeichen in Dateinamen.
quelle
rename
hat mir immer geholfen, mit dem Umbenennen mehrerer Dateien sehr einfach umzugehen.Zum Hinzufügen von Präfixen oder Suffixen für Dateien (Verzeichnisse) können Sie die einfache und leistungsstarke Methode von xargs verwenden :
Es wird die Paramerter-Ersetzungsoption von xargs verwendet: -I. Weitere Informationen finden Sie auf der Manpage.
quelle
ls *.old | xargs -I {} mv {} PRE_{}
Dies könnte durch Ausführen eines einfachen
find
Befehls erfolgen:Mit dem obigen Befehl werden allen Dateien und Ordnern im aktuellen Verzeichnis Folgendes vorangestellt
PRE_
.quelle
Um allen Dateien und Ordnern im aktuellen Verzeichnis mit util-linux ein Präfix hinzuzufügen
rename
(im Gegensatz zurprename
Perl-Variante von Debian und bestimmten anderen Systemen), haben Sie folgende Möglichkeiten :Dadurch wird das erste Vorkommen der leeren Zeichenfolge gefunden (die sofort gefunden wird) und dieses Vorkommen durch Ihr Präfix ersetzt. Anschließend wird der Rest des Dateinamens bis zum Ende aufgeklebt. Getan.
Für Suffixe müssen Sie die Perl-Version oder find verwenden .
quelle
util-linux
auf Debian Stretch scheint dies als zu liefern/usr/bin/rename.ul
.Wenn Sie Ruby haben (1.9+)
quelle
mit Perl:
quelle
Hier ist ein einfaches Skript, das Sie verwenden können. Ich verwende gerne das nicht standardmäßige Modul
File::chdir
, umcd
Vorgänge zu verwalten. Um dieses Skript unverändert zu verwenden, müssen Sie es installieren (sudo cpan File::chdir
).quelle
Auf meinem System habe ich den
rename
Befehl nicht. Hier ist ein einfacher Einzeiler. Es findet alle HTML-Dateien rekursiv und fügtprefix_
vor ihren Namen hinzu:quelle
find
Sie können auch Befehle, keine Notwendigkeit für eine Schleife ausführen: stackoverflow.com/a/33297439/2351568Dadurch werden Ihre Dateien in ihrem Verzeichnis vorangestellt.
Das
${f%/*}
ist der Pfad bis zum letzten Schrägstrich/
-> das VerzeichnisDas
${f##*/}
ist der Text ohne irgendetwas vor dem letzten Schrägstrich/
-> Dateiname ohne den PfadSo geht es also:
quelle