Am Samstag, 8. Juli 2006 00:35 schrieb David Haller: Hallo David,
Am Fre, 07 Jul 2006, Al Bogner schrieb:
Am Freitag, 7. Juli 2006 17:07 schrieb David Haller:
find /ordner/ -type d -mindepth 1 -maxdepth 1 -user al -print0
Das passt mir schon ganz gut. IMO darf aber -type d nicht vor -mindepth stehen.
Meinem find ist das wurst :)
Dann mach mal ein Update :-)
$ find --version GNU find version 4.1
find --version GNU find Version 4.2.27 Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
Ich habe jetzt mal das als 1. Teil:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d
Um das an xargs zu übergeben brauche ich doch:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d -print0 oder? D.h. die Argument dürfen kein return haben.
Kommt drauf an. Wenn die Dateinamen _definitiv_ keine Zeilenumbrueche enthalten kannst du problemlos das normale '\n' als Argumenttrenner verwenden. Also:
Ich habe mich nicht getraut es auszuprobieren.
find ... -print | xargs -r blubb
Wenn aber Zeilenumbrueche vorkommen koennen empfiehlt sich '\0' als Trenner:
Sollten zwar nicht vorkommen, aber vielleicht passiert es mal.
find ... -print0 | xargs -r -0 blubb
Nun möchte ich aber dass, die Liste auch noch sortiert wird. Wie baue ich das in den find-Befehl ein?
Find selbst kann nicht sortieren.
find ... | sort | xargs
Ob das funktionieren kann, war ich mir unsicher.
Oder schreib mal, welche Ausgabe du willst und was du damin machen willst. Evtl. ist es einfacher per '-printf' ein shellscript zu generieren und das an die shell zu pipen...
Ich versuche es in Kürze. Der Owner hat Schreibrecht, Gruppenmitglieder haben Leserecht. Manchmal muss der Owner ein Script ausführen, das alle Sub-Verzeichnisse eines Verzeichnisses abarbeitet. Der User hat aber auch Links zu Verzeichnissen anderer User, die nicht beschreibar aber lesbar sind, sodass ich auf die Verzeichnisse einschränke, die dem User gehören. In der Regel sind einfach alle Links tabu. Soweit lässt sich das ja mit der besprochenen Find-Syntax abfragen. Es wäre nun einfach wünschenswert, dass das Script die Verzeichnisse sortiert abarbeitet. Bei find ... -print0 ist ja kein Sort möglich. find /dir_nfs/maindir/user -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/test.sh /usr/local/bin/test.sh erwartet als Parameter den vollen Pfad eines Verzeichnisses. xargs: /usr/local/bin/test.sh: exited with status 255; aborting #!/bin/bash #/usr/local/bin/test.sh echo "ok" exit -1 Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com