Moin, On Thu, 12 Mar 2009, 12:44:06 +0100, Christian Brabandt wrote:
Hi Manfred!
On Thu, 12 Mar 2009, Manfred Hollstein wrote:
mit obigem Kommando erwischt du aber die '.??*' Dateien nicht. Ich wuerde lieber "stat" verwenden:
if [ -d DIR ] && [ `stat -c '%h' DIR` = 2 ]; then echo "DIR ist leer" fi
hm… #v+ ~$ stat -c '%n %h' non-empty non-empty/ 2 ~$ ls -A non-empty blah foobar .hidden ~$ #v-
hmm, stimmt, habe mich da wohl doch von dem Irrtum verleiten lassen, dass fuer jeden Eintrag in einem Directory die Anzahl der Hardlinks auf das Directory selber erhoeht wird. Ist offensichtlich nicht so, waere aber schoen, denn ich weiss noch aus eigener Erfahrung, wie laaaaange ein "ls -a/A" auf ein Directory, moeglicherweise noch per NFS gemounted, mit tausenden von Eintraegen dauern kann. Schade eigentlich!
Man könnte auch was mit der Shell-Expansion spielen: #v+ ~$ shopt -s dotglob ~$ printf "%s\n" empty/* empty/* ~$ printf "%s\n" non-empty/* non-empty/blah non-empty/foobar non-empty/.hidden ~$ if [ "`echo empty/*`" = "empty/*" ]; then
echo "leer"; fi leer ~$ if [ "`echo non-empty/*`" = "non-empty/*" ]; then echo "leer"; else echo "nicht leer"; fi nicht leer ~$
OK, das spart zumindest den zusaetzlichen Fork/Exec Cycle fuers "ls".
Mit freundlichen Grüßen Christian
Cheers. l8er manfred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org