On Mon, 01 Apr 2002 at 22:22 (+0200), Bernd Brodesser wrote:
* Martin Borchert schrieb am 01.Apr.2002:
Zuerst ganz knapp die Frage: Kann ich mit test (oder von mir aus auch mit [[ ]]) prüfen, ob in einem Verzeichnis irgendeine Datei liegt? Bei test -e * gibt's (verständlicherweise) nen Fehler, wenn mehr als eine Datei da ist. :(
test `ls -a | wc -l` -gt 2
Die Verzeichnisse . und .. liegen in jedem Verzeichnis, daher gegen 2 prüfen. Wenn ls in einer pipe schreibt, dann gibt es immer pro Datei eine Zeile aus. (Wenn nicht außdrücklich -C angegeben wird)
Anscheinend ist die Voreinstellung aber so, dass diese zwei "Dateien" nicht mit angezeigt werden. Ich habe es jetzt extra nochmal geprüft: berwal@hugo:~ > mkdir test berwal@hugo:~ > cd test berwal@hugo:~/test > ls berwal@hugo:~/test > type ls ls is aliased to `ls $LS_OPTIONS' berwal@hugo:~/test > echo $LS_OPTIONS -N --color=tty -T 0 ============== aus ls(1) ============================== -a, --all do not hide entries starting with . -A, --almost-all do not list implied . and .. ======================================================== Deine Variante ist schon richtig, aber wozu so kompliziert? Wenn man ganz auf Nummer sicher gehen will, dann empfinde _ich_ [ `ls -A | wc -l` -gt 0 ] als schöner. Und ja, die Test-Schreibweise gefällt _mir_ nicht, das ist aber dann wirklich reine Geschmackssache ;-) Gruß, Bernhard -- Homepage: http://www.bwalle.de