Tjorben Geschrieben 22. Juli 2008 Geschrieben 22. Juli 2008 Hallo Ich muss in Bash eine Schleife über alle Ordner eines Verzeichnisses machen. Dazu hab ich in einem Forum folgendes gefunden: VERZEICHNIS=`ls -d */` was so auch funktioniert im Gegensatz zu VERZEICHNIS=`ls -d ` In Verzeichnis steht nun aber Order1/ Order2/ Order3/ und ich muss die Slasches rausbekommen. Die einzige Methode die ich dafür bis jetzt kenne ist VERZEICHNIS=${VERZEICHNIS//"/"/" "} Damit passiert aber nichts, die Variable bleibt unverändert. Kann mir jemand weiterhelfen?
Tjorben Geschrieben 23. Juli 2008 Autor Geschrieben 23. Juli 2008 basename holt mir doch den Dateinamen aus einem Pfad. Ich habe hier doch keinen Pfad sondern eine Auflistung aller Ordner. ich muss nur den letzten Slash entfernen was ich nicht hinbekomme
flashpixx Geschrieben 23. Juli 2008 Geschrieben 23. Juli 2008 Bitte man-Page lesen: basename, dirname -- return filename or directory portion of pathname wenn ich "basename /dev(/)" mache, dann erhalte ich "dev" Phil
Tjorben Geschrieben 23. Juli 2008 Autor Geschrieben 23. Juli 2008 wie lautet denn dann der komplette befehl um alle Ordner eines Verzeichnisses in einer Liste zu speichern?
flashpixx Geschrieben 23. Juli 2008 Geschrieben 23. Juli 2008 Zu Deinem Originalpost: um alle Verzeichnisse (inkl Unterverzeichnisse) nur die Ordnernamen zu bekommen: find . -type d -exec basename \{\} \; Find hat eine Menge Optionen ;-) Phil
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden