leere Verzeichnisse

Software besorgen und anwenden
Post Reply
Message
Author
zsm
Posts: 56
Joined: 12. Jun 2001 13:59
Contact:

leere Verzeichnisse

#1 Post by zsm »

Hallo,

wie kann ich per Shell Skript ein leeres Verzeichnis erkennen?

test hat ja scheinbar nur für Dateien brauchbar.

Gibt es sowas auch für Verzeichnisse?

Florian
The box said "Windows 95, 98 or better" - so I installed Linux ...

Jochen

Re: leere Verzeichnisse

#2 Post by Jochen »

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
dir_is_empty() {
if [ ! -d "$1" ] ; then
return 2 # Parameter ist kein Verzeichnis
fi
NUM_DIRENTRIES=`ls -a "$1" | wc -l`
if [ "$NUM_DIRENTRIES" -eq 2 ] ; then
return 0 # Leeres Verzeichnis
fi
return 1 # Nicht-leeres Verzeichnis
}
</font><hr></pre></blockquote>

Pack Dir die Funktion in Dein Skript und verwende wie folgt:<pre>
if dir_is_empty $MEIN_VERZEICHNIS ; then
echo "Das Verzeichnis ist aber leer."
else
echo "OK, $MEIN_VERZEICHNIS hat noch Inhalt."
fi</pre>Hintergrund: Jedes Verzeichnis muss mindestens 2 Einträge besitzen: "." als Verweis auf sich selbst und ".." als Verweis auf das übergeordnete Verzeichnis. Die Funktion zählt lediglich die Anzahl Einträge; bei 2 (eben "." und "..") ist das Verzeichnis leer. Damit die Funktion mit Sicherheit arbeiten kann, wird vorher geprüft, ob der Parameter überhaupt ein Verzeichnis ist. Bei leerem Verzeichnis ist der Return-Code 0 (logisch wahr für die Shell), bei nicht leerem Verzeichnis 1 (logisch falsch für die Shell) und bei Nicht-Verzeichnis 2 (auch logisch falsch <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">).

Jochen

zsm
Posts: 56
Joined: 12. Jun 2001 13:59
Contact:

Re: leere Verzeichnisse

#3 Post by zsm »

Danke

Post Reply