Hallo
Ich möchte unter Linux in einem Verzeichnis gleichnamige Ordner, die
sich nur durch Groß- bzw. Kleinschreibung unterscheiden, umbenennen
lassen. Beispiel:
ordner
ORDNER
Ordner
Nach dem umbenennen:
ordner
ORDNER_001 (oder ähnlich)
Ordner_002 (oder ähnlich)
Das ganze dazu, damit unter Windows die Ordner korrekt angesprochen
werden können. Kann hier jemand helfen?
Dazu müsstest du jedes Verzeichnis gegen jedes Verzeichnis vergleichen
und zählen, am besten schreibst du erstmal alles in eine Indexdatei. Das
ist zwar mit einem shell script schnell gemacht, wie lange das dann
läuft hängt aber von deinen Daten ab.
Mir ist allerdings unverständlich wieso man seine Verzeichnisse
überhaupt so benennt. Wenn das generierte Verzeichnisse sind, dann wäre
es besser das an der Quelle zu korrigieren, statt hinterher aufzuräumen.
Wie wäre es, wenn Du von hausaus jedem Ordner eine fortlaufende Nummer
in Form eines Suffix anhängst _001, _002 etc.
Der Filemanager unter Win hätte dann die Unterscheidung, die er
benötigt.
Markus
Sönke P. schrieb:> Eine Umbenennung könnte also so ähnlich geschehen:for F in ./blabla/* ;> do NFILE=$(echo $F | tr "[A-Z]" "[a-z]") ; mv --backup=numbered $F> $NFILE ; done
Das benennt alles um, auch Dateien wenn welche vorhanden sind.
Es sollen nur dirs umbenannt werden, das Gemurkse mit echo pipe nach tr
braucht heute auch keiner mehr, @L existiert.
Herbert B. schrieb:> Sönke P. schrieb:>> Eine Umbenennung könnte also so ähnlich geschehen:for F in ./blabla/* ;>> do NFILE=$(echo $F | tr "[A-Z]" "[a-z]") ; mv --backup=numbered $F>> $NFILE ; done> Das benennt alles um, auch Dateien wenn welche vorhanden sind.> Es sollen nur dirs umbenannt werden, das Gemurkse mit echo pipe nach tr> braucht heute auch keiner mehr, @L existiert.
Das was Sönke da schrieb erscheint mir 1000 mal eleganter als dein
Machwerk. Kleiner Tipp: Wenn man die Tools die man nutzt kennt, erkennt
man auch relativ schnell wie Filter auf Verzeichnisse (-type d) setzt.
Eine Begrenzung auf eine Verzeichnisebene ist ggf auch noch sinnvoll.
Herbert B. schrieb:> Das benennt alles um, auch Dateien wenn welche vorhanden sind.
Dann ist ja gut, dass dein Script nicht nur exemplarisch, sondern
universell ist (hust "_foo").
> Es sollen nur dirs umbenannt werden, das Gemurkse mit echo pipe nach tr> braucht heute auch keiner mehr, @L existiert.
Dieser Bash-Trick mit ${VARIABLE@L}/${VARUABLE@U} ist ja fein. Aber wenn
der TO nichtmal einfache Shellbefehle beherrscht, dann zeigt man ihm
m.E. lieber erstmal "Gemurkse" mit Pipes und Standardutilities.
Hubert Kaiser schrieb:> Ich möchte unter Linux in einem Verzeichnis gleichnamige Ordner, die> sich nur durch Groß- bzw. Kleinschreibung unterscheiden, umbenennen> lassen. Beispiel:> [...]> Das ganze dazu, damit unter Windows die Ordner korrekt angesprochen> werden können. Kann hier jemand helfen?
Anbei ein schneller Hack in Python, der rekursiv über Unterverzeichnisse
geht und auch Dateien umbenennen kann. Alle verwendeten Module sind in
jeder Python-Standardinstallation vorhanden. YMMV, HTH.
Sönke P. schrieb:> Herbert B. schrieb:>> Das benennt alles um, auch Dateien wenn welche vorhanden sind.>> Dann ist ja gut, dass dein Script nicht nur exemplarisch, sondern> universell ist (hust "_foo").
_foo hat überhaupt keine Auswirkungen, kannst auch Sönke eintragen oder
gar nix, das ändert überhaupt nichts an dem Script. Wenn du Ahnung
hättest würdest du dich nicht an diesem Punkt aufhängen. Es enthält noch
einen potentiellen Fehler, der ist dir Experte aber nicht mal
aufgefallen.
> Dieser Bash-Trick mit ${VARIABLE@L}/${VARUABLE@U} ist ja fein.
Ist kein Trick, das ist ein Feature das man nutzt.
> Aber wenn der TO nichtmal einfache Shellbefehle beherrscht,> dann zeigt man ihm> m.E. lieber erstmal "Gemurkse" mit Pipes und Standardutilities.
Wasn das fürn lächerliches Ausredenargument? Dein Gepipe ist schlicht
überflüssig, elegant ist wenn man ohne dieses auskommt, warum wirst du
vermutlich nicht verstehen.
Herbert B. schrieb:> das ist ein Feature das man nutzt.>> Dein Gepipe ist schlicht> überflüssig, elegant ist wenn man ohne dieses auskommt,
Pipes sind ein Standardfeature vieler Shells, warum sollte man die nicht
benutzen? @L hingegen ist ein Bashism... hm.
Hubert Kaiser schrieb:> Hallo>> Ich möchte unter Linux in einem Verzeichnis gleichnamige Ordner, die> sich nur durch Groß- bzw. Kleinschreibung unterscheiden, umbenennen> lassen. Beispiel:>> ordner> ORDNER> Ordner>> Nach dem umbenennen:>> ordner> ORDNER_001 (oder ähnlich)> Ordner_002 (oder ähnlich)
Gemischte Groß- und Kleinschreibung ist immer noch schlampig!
Warum nicht einfach:
ordner_000
ordner_001
ordner_002
und grundsätzlich alles klein.
DPA schrieb:> Kann man nicht Windows irgendwie beibringen, case-sensitive zu> arbeiten?
Das ist auch ne Murkslösung, weil er dann jedes Windows umkonfigurieren
muss, in dem er die Verzeichnisstruktur nur nutzen will.