bash testen auf beliebige Datei(en) in Ordner

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von rbrosi, 21.08.2006.

  1. rbrosi

    rbrosi Grünschnabel

    Dabei seit:
    07.06.2004
    Beiträge:
    2
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Xanti, 21.08.2006
    Zuletzt bearbeitet: 21.08.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hmm, ich würde es so machen:

    Code:
    if [ $(ls /zu/pruefender/ordner | wc -w) -gt 0 ]; then
    ...
    
    Gruss, Xanti
     
  4. #3 phrenicus, 21.08.2006
    phrenicus

    phrenicus Routinier

    Dabei seit:
    24.05.2006
    Beiträge:
    253
    Zustimmungen:
    0
    Ort:
    Tübingen, Germany
    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ß
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Da hat aber jemand Langeweile gehabt ;)

    Eine Perl-Lösung gibts vielleicht am Wochenende, wenn ich Langeweile habe. ;)
     
  6. #5 phrenicus, 21.08.2006
    phrenicus

    phrenicus Routinier

    Dabei seit:
    24.05.2006
    Beiträge:
    253
    Zustimmungen:
    0
    Ort:
    Tübingen, Germany
    Hallo,

    Ja, ich hab Spätdienst und es ist nicht viel los...

    Gruß
     
Thema:

bash testen auf beliebige Datei(en) in Ordner

Die Seite wird geladen...

bash testen auf beliebige Datei(en) in Ordner - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  3. Bash sucht neues Logo

    Bash sucht neues Logo: Die GNU Bourne Again Shell (bash) sucht nach knapp 20 Jahren ein neues, individuelles Logo. Alle Anwender und Interessenten sind deshalb...
  4. Mit bash Skript bestimmte Werte aus Tabelle lesen

    Mit bash Skript bestimmte Werte aus Tabelle lesen: Hallo! Ich beschäftige mich erst seit Kurzem mit bash und bin deshalb noch nicht so fit darin. Und nun habe ich schon ein kleines Problem und...
  5. Bash: Geteiltes Fenster mit unterschiedlichen Funktionen

    Bash: Geteiltes Fenster mit unterschiedlichen Funktionen: Hallo Leute, ist es in Bash möglich, zwei Funktionen in zwei getrennten Teilen eines Terminalfensters ablaufen zu lassen? Da Bash die Befehle...