bash testen auf beliebige Datei(en) in Ordner

R

rbrosi

ich möchte mit bash prüfen ob in einem Ordner Dateien sind,
dazu habe ich die Testanweisung genutzt

if test -e /zu/pruefender/ordner/*
then
anweisung1
else
anweisung2
fi

Die Dateien die drinliegen können beliebig heissen

Wenn nur eine Datei drinliegt klappt das so,
sobald aber mehrere Dateien drin sind, meckert das
script to few arguments.

Weiß jemand einen anderen Befehl mit dem ich testen kann ob eine beliebige Datei in einem Verzeichnis drin ist ?

MFG


Rainer
 
Hmm, ich würde es so machen:

Code:
if [ $(ls /zu/pruefender/ordner | wc -w) -gt 0 ]; then
...

Gruss, Xanti
 
Zuletzt bearbeitet:
Prima :)

Nur so zum Spaß und weil ich grad etwas gelangweilt bin, hab ich mal eine Lang-Version davon in Shell gebaut.

Code:
#! /bin/bash
#
# filecount.sh --- counts the number of files in a given directory

PATH=/bin:/usr/bin
TESTDIR="$1"

test "$1" = "" && \
{
        echo "Usage: $0 DIRECTORY";
        echo
        echo "$0 takes a DIRECTORY as an argument"
        echo "There are no other options or arguments"
        echo
        echo "Exiting..."
        echo
        exit 1
}

FILENUM=`ls ${1} | wc -w`
DIRNUM=`ls -l ${1} | grep "^d" | wc -l`
REGNUM=`ls -l ${1} | grep "^-" | wc -l`
LINKNUM=`ls -l ${1} | grep "^l" | wc -l`
CHARNUM=`ls -l ${1} | grep "^c" | wc -l`
BLOCKNUM=`ls -l ${1} | grep "^b" | wc -l`
PIPENUM=`ls -l ${1} | grep "^p" | wc -l`
SOCKNUM=`ls -l ${1} | grep "^s" | wc -l`

echo "The total number of files in directory ${1} is $FILENUM."
echo "$REGNUM of these are regular files."
echo "$DIRNUM of these are directories."
echo "$LINKNUM of these are symbolic links."
echo "$CHARNUM of these are character special files."
echo "$BLOCKNUM of these are block special files."
echo "$PIPENUM of these are named pipes."
echo "$SOCKNUM of these are sockets."

exit 0

# end of script

Optimierungen willkommen (I accept patches :D).
Will es jemand in perl versuchen? Geht bestimmt wesentlich effizienter, aber perl kann ich fast überhaupt nicht.

Gruß
 
Da hat aber jemand Langeweile gehabt ;)

Eine Perl-Lösung gibts vielleicht am Wochenende, wenn ich Langeweile habe. ;)
 

Ähnliche Themen

NAS-Drive Mount in Bash-Script über crontab

Rückgabe eines Befehls

[gelöst] - for file in ... nur für bestimmte Endungen?

HandbrakeCLI Shell Skript

verzeichniss suche funktioniert nicht

Zurück
Oben