Ich hatte nicht viel Erfolg bei der Suche nach einer Linux-Version von namemangler , die ich umbenennen muss, damit 1000 Dateien unter Windows lesbar sind.
Kennt jemand ein Linux-Programm, das dies kann?
Wenn nicht, funktioniert ein Skript möglicherweise, da ich nur alle Dateien in einem Ordner auf die ersten 16 Zeichen umbenennen muss. Ich vermute, dass es sich lohnt, die Skriptroute zu gehen, bin mir aber nicht sicher, wo ich anfangen soll.
Antworten:
Wenn Sie unter Debian, Ubuntu und Derivaten
man rename
an einer Eingabeaufforderung eingeben , erhalten Sie die Handbuchseite für ein Umbenennungsdienstprogramm, mit dem beliebige Perl-ähnliche Befehle für reguläre Ausdrücke beim Umbenennen verwendet werden können.Dadurch werden beispielsweise alle Dateien im aktuellen Verzeichnis auf eine Länge von fünf gekürzt (durch Abschneiden):
Es funktioniert, indem die ersten fünf Zeichen erfasst und dann in der Ersetzung verwendet werden, wobei der Rest entfernt wird.
Ein weiteres Beispiel ist das Kürzen von Dateinamen (ohne Erweiterung) auf fünf Zeichen, wobei die Erweiterung beibehalten wird :
Es erfasst zwei Gruppen, wobei die erste die ersten fünf Zeichen und die zweite die Erweiterung ist. Dies würde sich
myCarefullyCraftedDocument.pdf
in verwandelnmyCar.pdf
.Warnung: Verwenden Sie dies sorgfältig, vorzugsweise auf einer Kopie Ihres Verzeichnisses oder indem Sie zuerst Sicherungen erstellen. Du wurdest gewarnt!! Verwenden
rename -n
Sie mindestens zuerst, um zu sehen, was getan werden würde, ohne es tatsächlich zu tun.quelle
Sie können widersprüchliche Dateien in ein anderes Verzeichnis verschieben:
quelle
Sie können ein Skript schreiben, um Dateinamen zu verkürzen und Zeichen, die Windows nicht mag, in wenigen Zeilen zu entfernen. Warnung, ungetesteter Code, direkt in meinen Browser eingegeben.
Wenn Sie in Unterverzeichnisse zurückkehren müssen, rufen Sie ein Shell-Skript von auf
find -depth -exec …
. Oder verwenden Sie zsh anstelle von bash. Erweitert in zsh**/*(od)
rekursiv auf alle Dateien im aktuellen Verzeichnis, wobei zuerst tiefer verschachtelte Dateien verwendet werden.quelle
Shell / Python / Perl-Skripte für diese Art von Dingen sind in Ordnung, aber es scheint, als wäre eine GUI- App am besten für Sie geeignet. Daher würde ich pyRenamer empfehlen , das unter anderem genau das tun kann, was Sie wollen (einfache allgemeine Operationen) über Voreinstellungen [Leerzeichen entfernen, Dateinamen von einem Punkt zum anderen kürzen], einfaches Suchen / Ersetzen, komplizierte Regex, Vorschau usw.).
Ihre Distribution hat es möglicherweise sogar in ihrem Software-Repository (Fedora tut es).
quelle
Einige Systeme verfügen nicht über den
rename
Befehl. Als Alternative zur Antwort von paxdiablo erfahren Sie hier, wie Sie dasselbe tunmv
.Das
-b
Flag beim Verschieben erstellt eine Sicherung von Dateien, die gelöscht oder überschrieben werden. Durch Ändern des Glob-Musters in der for-Schleife können Sie anpassen, auf welchen Dateien es ausgeführt wird, und es*
selbst verwenden, um alle Dateien auszuführen.quelle
echo
und eine Pipe (kann sehr teuer sein, wenn Sie viele Dateien haben), verwenden Sie stattdessen einen Heredoc oder Herestring.eval 'echo $BASH_SUBSHELL'
undeval 'echo $BASH_SUBSHELL' | cat
.time
eine Schleifeecho $i | sed
und eine andere verwendet wurdensed ... <<<$i
, und der Herestring dauerte ungefähr 2/3 der Zeit des Echos.<<
Startet ein hier <i> doc </ i>, das mehrzeilig ist und Trennzeichen erfordert.<<<
Erstellt hier eine <i> Zeichenfolge </ i>, die nur eine Variable / Zeichenfolge verwendet. Probieren Sie es ausvar=abc // cat<<<$var // cat <<$var
.Wenn Sie mit dem Umbenennen von Dateien experimentieren müssen und zufällig KDE-Bibliotheken auf Ihrem System installiert haben (oder nichts dagegen haben, sie hinzuzufügen), lesen Sie krename.
Sie können damit einige einfache Umbenennungsaufgaben direkt mit den Tools ausführen und reguläre Ausdrücke für kompliziertere Situationen verwenden.
Es zeigt Ihnen eine Vorschau der umbenannten Dateien, während Sie die Umbenennungsbedingungen erstellen. Außerdem können Sie dieselben Dateien erneut umbenennen. Dies ist hilfreich, wenn Sie etwas Kompliziertes tun möchten, bei dem eine schrittweise Ausführung die Komplexität jeder Phase auf etwas reduzieren würde, das Sie schnell herausfinden können.
quelle
quelle