Massenumbenennungsdateien einschließlich Unterverzeichnissen

649
Shubham Mathur

Ich habe viele Dateien mit "example.com" in ihnen, und ich möchte sie durch "example.co" ersetzen, da ich meine Site tld ändere. Ich habe ein Programm umbenannt, das auf meinem Server installiert ist und root-Zugriff hat.

Kann mir jemand bei der Umbenennung helfen?

Beispielspeicherort von Dateien:

/var/html/downloads/folder1/folder1-1/abc(example.com).mp4 /var/html/downloads/folder2/folder2-1/abc(example.com).mp4 /var/html/downloads/folder2/folder2-2/abc(example.com).mp4 /var/html/downloads/folder3/folder3-1/abc(example.com).mp4 

Ich hoffe jemand hilft mir hier draußen :)

PS: Ich habe diese cmd verwendet, aber unter dem Fehler:

cmd: find -name "*example*" | xargs -I '{}' rename s/com/co/ '{}' 

Error:

For more details see rename(1). rename: not enough arguments  Usage: rename [options] expression replacement file... 
0
Es gibt zwei "Standardversionen" für die Umbenennung von Linux, eine neuere, die reguläre Perl-Ausdrücke erwartet, und Ihre, von denen ich denke, dass sie einer älteren Unix-Version nachempfunden ist, die zwei Parameter für Suche und Ersetzung akzeptiert. Versuchen Sie `xargs -I '{}' umzubenennen" com "" co "'{}'`. Das könnte jedoch zu breit sein, da es jede Instanz von "com" fängt. Wenn Perl installiert ist, können Sie stattdessen wahrscheinlich "prename" als Regex-Version verwenden. baochan vor 9 Jahren 0
Ihre Beispieldateinamen enthalten nicht "example.com" im Dateinamen. Versuchen Sie, Text im Inhalt der Dateien zu ersetzen? In diesem Fall sollten Sie den Befehl "sed" anstelle von "rename" verwenden. baochan vor 9 Jahren 0
Ihre Frage ist widersprüchlich. Sie sagen, Sie müssen example.com * innerhalb * der Dateien ändern, geben dann aber ein Beispiel an, um die Dateinamen zu ändern. Zum Abschluss geben Sie Beispieldateinamen an, die sich in keiner Weise auf example.com beziehen und binäre .mp4-Dateien sind. Hier stimmt nicht etwas, alles stimmt nicht. Auf diese Frage gibt es keine Antwort. Timbo vor 9 Jahren 0
Eine ordnungsgemäß gestaltete Website enthält relative Links innerhalb der HTML-Dateien, sodass dieses Problem vollständig vermieden wird. Sind Sie sicher, dass fqdn in der HTML-Datei codiert ist? Oder ist das eine Vermutung? Timbo vor 9 Jahren 0
Wenn ich mir den Verwendungstext anschaue, bin ich sicher, dass @baochan Ihre Version von `rename 'richtig macht. Drei Punkte: (1) das Skript schlägt fehl, wenn eingebettete Leerzeichen vorhanden sind (Sie müssen `find -print0` und` xargs -0` verwenden); (2) Bei Verwendung von "xargs -I" wird für jede gefundene Datei ein eigener "umbenennen" ausgeführt. Es ist viel effizienter, einfach an "xargs -0 rename com co" zu pfeifen seine Laufkette; (3) Um `rename` einmal pro Datei auszuführen, müssen Sie` xargs` überhaupt nicht verwenden. Verwenden Sie `find -name" * example * "-exec umbenennen com co '{}' \;` AFH vor 9 Jahren 0

0 Antworten auf die Frage