Veröffentlicht 22. Juli 200817 j 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?
23. Juli 200817 j 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
23. Juli 200817 j Bitte man-Page lesen: basename, dirname -- return filename or directory portion of pathname wenn ich "basename /dev(/)" mache, dann erhalte ich "dev" Phil
23. Juli 200817 j wie lautet denn dann der komplette befehl um alle Ordner eines Verzeichnisses in einer Liste zu speichern?
23. Juli 200817 j Zu Deinem Originalpost: um alle Verzeichnisse (inkl Unterverzeichnisse) nur die Ordnernamen zu bekommen: find . -type d -exec basename \{\} \; Find hat eine Menge Optionen ;-) Phil
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.