Files umbenennen

S

SkaterShorty

Mitglied
Thread Starter
Dabei seit
28.07.2017
Beiträge
4
Reaktionspunkte
0
Guten Abend,

ich muss mehrere TB Dateien umschreiben, da in den Daten : / enthalten sind. Die Zeichen sollen durch _ ersetzt werden.
Super wäre es wenn es dafür dann auch eine Log Datei geben würde, in der man alle geänderten Dateien auflistet.

Better File Rename und Co. brauchen für das ganze viel zu lange. 1TB habe ich nach 7 Tagen abgebrochen.

Ist das möglich?

Vielen Dank für eure Hilfe :)
Grüeß
 
Bist du fit mit dem Terminal? Hab leider gerade weder Mac noch Linux Kiste verfügbar um dir die genauen Befehle zu liefern, aber die Idee wäre die betroffenen Dateien mittels "find" Befehl zu suchen und an ein "mv" (auf Shell Ebene ist mv sowohl für Verschieben als auch umbennen) zu übergeben, wobei du die Dateinamen mittels bspw. "sed" entsprechend anpasst. Wie die Performance in dem Fall ist weiß ich nicht, für gewöhnlich sind aber alle Befehle sehr flott unterwegs. Die Größe der Daten interessiert da auch nicht wenn du nur den Filename ändern willst, da ist rein die Anzahl relevant.

EDIT: gerade noch mal genauer deinen Post gelesen, geht ja wohl doch um den Inhalt. Da wäre dann nur Dateien mittels find ermitteln und dem sed Befehl übergeben, der kann (zumindest bei den meisten GNU basierten Systemen) auch mittels -i Flag inline Ersetzung in Files.
 
Mit einem Shellscript sollte das für kundige ruckzuck zu machen sein.
Also das Script-Schreiben.
Das Umbenennen selbst dürfte kaum schneller ablaufen als mit einem fertigen Programm.
Sieben Tage für 1 TB sind allerdings ungewöhnlich viel, selbst wenn es viele Minidateien sind. Da geht ja Kopieren mit USB 2 schneller.
Kann es sein, daß die Festplatte oder das Dateisystem etwas beschädigt sind? Oder ein NTFS-Dateisystem und du benutzt einen entsprechenden Treiber?
 
Habe die Daten testweise auf eine neue 10 TB Festplatte kopiert (CarbonCopyCloner) und zuvor natürlich frisch formatiert.

@Mac-Bene
So fit im Terminal bin ich leider nicht das ich das selber machen könnte.
Es geht mir nur um die Benennung der Datei nicht den Inhalt.
Ich könnte eine VM mit Windows 10 aufsetzen, die rein nur zum umbenennen da ist.
 
Die Angabe "mehrere TB" ist fürs Umbenennen eigentlich nicht von Bedeutung - da interessiert mehr die Anzahl der Dateien, nicht deren Größe.
Wo liegen die Dateien - alle in einem Verzeichnis? Ich denke ein entsprechendes Shellscript sollte der beste Weg dafür sein ... da hat man auch gute Log- und "DryRun"-Möglichkeiten.
find mit der exec-Option sollte dafür eigentlich schon reichen ... denke
mal du wirst dafür hier schnell einige Unterstützung bekommen.
 
Es sind ca. 20 Verzeichnisse die ich nacheinander umschreiben würde.

Wenn ich das gerade richtig verstehe Shellscript Umweg über Windows?! :)
 
  • Gefällt mir
Reaktionen: Impcaligula
naja, wenn er nicht gut im skripten ist, kennt er ja nicht die fallstricke wegen den nicht erlaubten sonderzeichen in dateinamen und wie man das dann in der shell handhaben muss (das / richtig quoten usw)...

vielleicht hilft ja das finder umbenennen?
das kann ja auch auch mehrere dateien auf einmal.
einfach mal testen …
 
Es sind ca. 20 Verzeichnisse die ich nacheinander umschreiben würde.

Wenn ich das gerade richtig verstehe Shellscript Umweg über Windows?! :)

Windows brauchst du dazu nicht. Dein Vorhaben ginge zwar wahrscheinlich auch mit der PowerShell aber die in OS X enthaltene bash sollte eigentlich alles nötige haben.
Mein iMac braucht leider noch etwa 1.5 Wochen bis er hier eintrudelt (obwohl schon vor 2 Wochen bei Apple bestellt, BTO halt :(), sonst könnte ich das gerade zusammenbasteln. Aus dem Kopf ohne "Testumgebung" bekomm ich das leider dann doch nicht hin :nono:
 
naja, wenn er nicht gut im skripten ist, kennt er ja nicht die fallstricke wegen den nicht erlaubten sonderzeichen in dateinamen und wie man das dann in der shell handhaben muss (das / richtig quoten usw)...
Na ein bisschen Eigenleistung kann man doch erwarten, oder nicht? Der andere Thread war jetzt wirklich nicht soweit weg.

Nun gut, oder nicht (aber ungetestet kurz zusammengetippert).
Code:
find /start_dir/ -type f | while read file; do mv -v "$file" "${file/\:/_}"; done
Und mit dem / wird das vermutlich nix, da der zumindest in den Unixen Filesystemen als Verzeichnis-Trenner aufgefasst wird (oder wie ist der Datenträger mit den Dateien formatiert?) Fällt mir jedenfalls aus dem Kopf heraus grade nichts zu ein.
 
  • Gefällt mir
Reaktionen: Impcaligula
Ich würd das einfach mal über den Finder versuchen, sollte eigentlich funktionieren.
 
Und mit dem / wird das vermutlich nix, da der zumindest in den Unixen Filesystemen als Verzeichnis-Trenner aufgefasst wird (oder wie ist der Datenträger mit den Dateien formatiert?) Fällt mir jedenfalls aus dem Kopf heraus grade nichts zu ein.
eigentlich ist "/" im finder-filenamen intern schon ein ":" deshalb dürfte es reichen, nach ":" zu suchen.
tempomässig kann man auch noch zulegen, wenn man nicht *alles* versucht umzubenennen, sondern nur die betreffenden files.
"...f//:..." findet alle ":" im namen, nicht nur das erste auftreten und "mv -n" verhindert das überschreiben vorhandener files.

Code:
find . -type f | while read f; do f_new="${f//:/_}"; [[ "${f_new}" != "${f}" ]] && echo mv -nv "${f}" "${f_new}"; done
 
Hallo Leute,
ich habe folgendes Problem.

Meine Fotos haben z.B. Folgende Namen:
17-08-04 - 01 (JJ-MM-TT - lfd.Nr.)

Nun habe ich von Früher (die Mehrheit) z.B. folgende Namen:
11-01-01-01

Wie bringe ich nun mit dem Automator die Leerzeichen beim letzten Bindestrich weg ?

Kann bitte jemand helfen, probiere schon Stunden ergebnislos.
 
Alle markieren und mit Rechtsklick umbenennen. Ist selbsterklärend.
 
Anscheinend bin ich dafür zu blöd, kannst du das genauer beschreiben ?
 
du wählst im finder halt alle dateien aus, die du umbenennen willst und gehst dann halt entweder über das kontext-menü mit rechts-klick oder über die ablage auf "x objekte umbenennen".
da hast dann ein menü was du genau machen willst.
 
du wählst im finder halt alle dateien aus, die du umbenennen willst und gehst dann halt entweder über das kontext-menü mit rechts-klick oder über die ablage auf "x objekte umbenennen".
da hast dann ein menü was du genau machen willst.
Danke für die Antwort, aber es funktioniert nicht.

Das Ergebnis beim umbenennen

von "##-##-## - ##" auf "##-##-##-##" ergibt wieder "##-##-## - ##"

Ich will die Leerzeichen beim letzten Bindestrich loswerden.
 
Einfach "Text ersetzen" auswählen, bei "Suchen" einmal die Leertaste drücken, "Ersetzen durch" einfach leer lassen, fertig.
Es wird einem sogar ein Beispiel angezeigt, was passieren wird, BEVOR man umbenennt.
 
Einfach "Text ersetzen" auswählen, bei "Suchen" einmal die Leertaste drücken, "Ersetzen durch" einfach leer lassen, fertig.
Es wird einem sogar ein Beispiel angezeigt, was passieren wird, BEVOR man umbenennt.
Super Danke, hat funktioniert !

kannst du mir bitte nochmal helfen:
Der letze Bindestrich war kein Bindestrich sondern ein etwas längerer Strich.
(durchlaufende Nummerierung durch das Programm "Fotos")
Kann ich diesen nun zu einem Bindestrich "-" ersetzen ?
 
Zurück
Oben Unten