von gross zu klein umbennen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
ren22

von gross zu klein umbennen

Beitrag von ren22 » 06.12.2006 15:42:21

hi leute

flogendes problem heute:
also ich hab da ne schöne tolle cd die komplett in ein verzeichnis kopiert wurde und jeztz sind alle dateien inklusive der ordner gross geschrieben ...problem in der sache ist das eigentliches alles klein geschrieben sein sollte ...jetzt die frage wie kannn ich alle dateien inklusive der ordner auf klein schrift bekommen ? also umbennen ohne das ich in jedenordner wechseln muss ;) also am besten ein befehl der alles klein schreibt mit unterordner ;)
danke

LG ren22

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 06.12.2006 15:56:08

Mit 'rename'. Um das rekursiv auszuführen, musst du das sicherlich mit find kombinieren.

ren22

Beitrag von ren22 » 06.12.2006 17:21:27

hi danke für deine antwort gast du da mal ein bsp. für mich ich bin noch anfänger in sachen linux
danke

lg ren22

Benutzeravatar
Gharika
Beiträge: 209
Registriert: 28.09.2004 16:51:51
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Gharika » 06.12.2006 17:38:10

Code: Alles auswählen

for f in *
do
  n=`echo $f|tr [:upper:] [:lower:]`
  mv $f $n
done
oder rekursiv

Code: Alles auswählen

find -type f|while read f; do n=`echo $f|tr [:upper:] [:lower:]`; mv $f $n; done
Beleidigungen sind die Argumente derer, die unrecht haben.

-- Jean Jacques Rousseau

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 06.12.2006 17:50:13

Leider tut weder meine Lösung (mit rename) noch die Lösung von Gharika genau das, was du willst. Beide funktionieren offenbar nur über eine Verzeichnisebene.
Wenn die Verschachtelung nicht allzu tief ist, ruf rename in jedem Verzeichnis so auf:

Code: Alles auswählen

rename 'y/A-Z/a-z/' *
Vlt. bringt hier aber noch jemand einen Vorschlag, der auch rekursiv funktioniert.


BTW: Um näheres zu einem Befehl heraus zu finden, benutzt man unter Linux (wie allen Unix-artigen) die Manpages:

Code: Alles auswählen

man rename
Dort findet man z.B. obigen Aufruf von rename zum Ändern der Groß- und Kleinschreibung.

Benutzeravatar
Gharika
Beiträge: 209
Registriert: 28.09.2004 16:51:51
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Gharika » 06.12.2006 20:14:00

Wie wäre es damit?

Code: Alles auswählen

find datei_pfad -depth -print|while read f; do { b=`basename $f`; d=`dirname $f`; lb=`echo $b|tr [:upper:] [:lower:]`; mv $d/$b $d/$lb; } done
datei_pfad auf deinen Pfad abändern oder . für aktuelles Verzeichnis.


Hiermit kannst überprüfen ob es das macht was du willst:

Code: Alles auswählen

find . -depth -print|while read f; do { b=`basename $f`; d=`dirname $f`; lb=`echo $b|tr [:upper:] [:lower:]`; echo "mv $d/$b $d/$lb"; } done
Beleidigungen sind die Argumente derer, die unrecht haben.

-- Jean Jacques Rousseau

Antworten