Testen ob ein Verzeichnis leer ist

Post Reply
Message
Author
oli
Posts: 46
Joined: 25. Dec 2000 15:40

Testen ob ein Verzeichnis leer ist

#1 Post by oli »

Hi,

ich suche nach einer Möglichkeit, wie ich feststellen kann, ob sich in einem Verzeichnis
keine files befinden. Natürlich gibt es immer die Verweise auf das aktuelle Verzeichnis (.) und
das übergeordnete Verzeichnis (..). Diese Einträge sollen aber nicht als Treffer gelten sondern nur
reguläre Dateien.

Mit "test -d dirname" kann ich zwar testen, ob das Verzeichnis existiert, nicht aber ob es leer ist.

Ich suche nach einer Möglichkeit mit Shell Mitteln, auch sed & awk sind willkommen, aber halt nicht Perl.

Weiss das zufällig jemand ?

cu

oliver
If you were supposed to understand it, we wouldn't call it code.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Testen ob ein Verzeichnis leer ist

#2 Post by hjb »

Hi,

cd /pfad/zu/verzeichnis
list=$(echo *)
if [ "$list" = "*" ]
then
# leer
else
# nicht leer
fi
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Ozi

Re: Testen ob ein Verzeichnis leer ist

#3 Post by Ozi »

Hi,

danke für den hinweis, denke dass ich damit weiterkomme. c' ya <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

cu

oliver

ratte

Re: Testen ob ein Verzeichnis leer ist

#4 Post by ratte »

cool, dass echo auch files listet, wusste ich ja noch gar nicht, danke!

ratte

Jochen

Re: Testen ob ein Verzeichnis leer ist

#5 Post by Jochen »

Nö, macht echo nicht.

Verantwortlich ist die Shell dafür, die löst den "*" auf. echo gibt dann nur noch die Liste der Dateiname, die es von der Shell kriegt, aus.

Und da "*" <i>sämtliche</i> Dateien, die mit 'nem Punkt beginnen, ignoriert, kann nach dieser Methode ein Verzeichnis als leer angegeben werden, obwohl dort noch eine Datei .profile oder so liegt.

Vorschlag meinerseits:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
is_empty_dir()
{
if [ `ls -a "$1" | wc -l` -gt 2 ] ; then
return 1
else
return 0
fi
}
</font><hr></pre></blockquote>

Kannst Du in dieser Form verwenden als

if is_empty_dir /pfad/zu/meinem/verzeichnis ; then
# is leer
else
# nich leer
fi

In Ordnung?

Jochen

Ozi

Re: Testen ob ein Verzeichnis leer ist

#6 Post by Ozi »

Hi,

das ist ebenfalls eine gute Idee <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Die dotfiles brauch ich zwar in meinem Fall nicht, aber gut zu wissen, falls es später mal doch ne Rolle spielt.
Danke für den Tipp <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

cu

oliver

Post Reply