003
11.10.2003, 20:35 Uhr
~Kevin
Gast
|
Hi,
das ist nun meine Lösung, die berücksichtigt, ob ein Verzeichnis schon den gleichen Namen hat, wie der Namen, in welches es umbenannt werden soll.
Schreibt mir bitte, ob man es geschickter als so formulieren könnte.
Code: |
#! /bin/sh # Benennt Verzeichnisse in Zahlen (1,2,3,...) um. zahl=0 for i in * do if [ -d $i ] then zahl=$[$zahl+1] if [ $zahl -ne $i ] then mv $i $zahl fi fi done
|
Und dann hätte ich noch eine Frage. Um das mit den Unterverzeichnissen besser zu verstehen, wäre es interessant für mich diese mit einzubeziehen. Ich meine folgendes:
asdf: jköjkö jköjkökö asdfsdf kklll: kljljöj asdfasdf sdkflajsöd
Hier habe ich nun 2 Verzeichnisse. In der aktuellen Version meines Programms würde nun folgendes rauskommen:
1: jköjkö jköjkökö asdfsdf 2: kljljöj asdfasdf sdkflajsöd
Die Unterverzeichnisse bleiben also total unberücksichtigt. Jetzt würde ich gerne mein Programm so erweitern, dass es folgendes als Ergebnis bringt:
1: 2 3 4 5: 6 7 8
Die Unterverzeichnisse sollen also auch mit umbenannt werden. Jetzt würde es mich noch dabei interessieren, wie ich einstellen könnte, bis zu welcher Tiefe diese mitberücksichtigt werden sollen. Am liebsten wäre es mir, dies mit einem Parameter zu realisieren. Wenn das Programm rendir heisst, dann sollte "./rendir 2" bedeuten, dass Unterverzeichnisse bis Tiefe 2 berücksichtigt werden bei der Umbenennung.
Ich möchte, die Aufgabe natürlich größtenteils selbst lösen, denn ich will ja etwas dabei lernen. Aber ich brauche einen Anstoss wie ich diese Unterverzeichnisse mitberücksichtigen kann und wie ich die Tiefe mitberücksichtigen kann.
Ein paar Tips wären wirklich toll für mich. Denn mir macht es gerade richtig Spass die bash kennenzulernen und damit rumzuspielen.
Vielen Dank im Voraus
Kevin |