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? Zitieren
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 Zitieren
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 Zitieren
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? Zitieren
Tjorben Geschrieben 23. Juli 2008 Autor Geschrieben 23. Juli 2008 Oh hat geklappt. Vielen Dank Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.