PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl ls



Fußhupe
21.05.11, 20:14
Hallo zusammen,

ich bräuchte mal Eure Hilfe, da ich nicht weiterkomme.

Ich möchte mir nur die Ordner anzeigen lassen, die keine (weiteren) Unterordner haben, sondern nur die Ordner, die lediglich Dateien enthalten.

ls --help brachte mich nicht weiter.


ls -'aber-nur-die-Ordner-die-keine-Unterordner-haben' funktioniert leider nicht.

Vielen Dank schonmal.


Gruß
Fußhupe

kreol
21.05.11, 20:30
Versuchs mal mit
find . -maxdepth 1 -empty -type dDas sollte alle leeren Verzeichnisse im aktuellen Verzeichnis anzeigen.

Kreol

P.S.
Oh, zu flüchtig gelesen, Nicht leer sondern nur ohne Unterverzeichnisse. Hmm. ls kann das wohl nicht, da wirst Du etwas scripten müssen.

framp
22.05.11, 09:59
{ find . -type d; echo; } |
awk 'index($0,prev"/")!=1 && NR!=1 {print prev}
1 {sub(/\/$/,""); prev=$0}'

L00NIX
22.05.11, 11:00
{ find . -type d; echo; } |
awk 'index($0,prev"/")!=1 && NR!=1 {print prev}
1 {sub(/\/$/,""); prev=$0}'

Gibt's dafür auch noch eine Erklärung, also was beim AWK da passiert?

Interessiert, weil AWK nicht so mein Ding...

Danke & Gruß
L00NIX

framp
22.05.11, 21:24
Es wird dir Tatsache ausgenutzt, dass bei find die Parents immer vor den Children stehen.

index($0,prev"/")!=1 && NR!=1 {print prev}Das schreibt ein gültiges Verzeichnis (das vorher gefundene) wo das vorherige Verzeichnis nicht Teil des aktuellen Verzeichnisses ist - also kein Unterverzeichnis hat.

HirschHeisseIch
23.05.11, 22:05
Gehts nur mir so, oder finden hier andere auch die Variante vom Kreol einfacher? ;)
Wobei ich mir hier nicht sicher bin, ob das "-empty" da auch so passt. Immerhin sollen die Verzeichnisse ja Dateien enthalten. (hab jetzt nicht in der Man-Page nachgeschlagen...)

framp
23.05.11, 22:13
Gehts nur mir so, oder finden hier andere auch die Variante vom Kreol einfacher? ;)...
Nein, denn es sollen Verzeichnisse, die keine Unterverzeichnisse mehr haben angezeigt werden. Das ist was anderes als Verzeichnisse, die leer sind :rolleyes: