Shellprogrammierung find

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Shellprogrammierung find

    Hi,
    ich will auf einer Linuxbüchse in einem Verzeichnis schauen, ob da eine Datei ist, die das heutige Datum hat. Irgendwie bekomme ich das nicht hin.

    Mein Verzeichnis sieht so aus:

    drwxrwxrwx 8 arr_epaper root 200 Jun 2 02:31 2003060207901html
    drwxrwxrwx 8 arr_epaper root 200 Jun 3 02:31 2003060308934html
    drwxrwxrwx 8 arr_epaper root 200 Jun 4 02:31 2003060419899html
    drwxrwxrwx 8 arr_epaper root 200 Jun 5 02:31 2003060504972html
    drwxrwxrwx 8 arr_epaper root 200 Jun 6 02:31 2003060601481html
    drwxrwxrwx 8 arr_epaper root 200 Jun 7 02:39 2003060701122html

    Ich muss aber nicht den ganzen Verzeichnisbaum durchsuchen, sondern nur schauen ob in dem Verzeichnis ein aktuelles Datum ist.

    Gruß Olli
    Manus manum lavat.

  • #2
    In jedem Fall erstmal
    PHP-Code:
    $verzeichnis = ....;
    $datum date('Ymd');
    $ereg "^$datum.*html\$"
    Dann entweder die Ausgabe von ls auswerten:
    PHP-Code:
    exec ("ls $verzeichnis/$datum*html"$ausgabe);
    $vorhanden ereg ($datumimplode(''$ausgabe)); 
    oder (im safe mode) in einer Schleife alle Verzeichnis-Einträge checken
    (das funktioniert dann auch auf jedem anderen OS):
    PHP-Code:
    $dir opendir($verzeichnis);
    $vorhanden false;
    while (
    false!==($filename=readdir($dir))
        && 
    false!==$vorhanden)
      
    $vorhanden ereg("^$datum.*html\$"$filename);
    closedir($dir); 
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo Titus,
      schön, aber ich brauche das nicht in PHP, sondern Shell-Syntax:

      Ich habe jetzt auch schon so etwas, nur funzt es nicht richtig

      if find . -maxdepth 1 -name '200*' -mtime 0
      then
      echo "Keine aktuelle Datei"
      else
      echo "Aktuelle Datei"
      fi

      Ich vermute, dass das Konstrukt if find . -maxdepth 1 -name '200*' -mtime 0 nicht funzt:

      Wenn ich das find alleine mache funzt es, nur in Verbindung mit der if-Abfrage funzt es nicht.

      Gruß Olli
      Manus manum lavat.

      Kommentar


      • #4
        ups ... richtig, wir sind hier ja nicht im PHP-Forum.

        Das sieht nach korn shell aus ...

        Wenn ich jetzt mein ksh-Tutorial finden würde, könnt ich glatt weiter helfen - im Web hab ich nix vergleichbares gefunden, und ich bin schon ein paar Jahre außer Übung. Aber das Prinzip ist easy:

        1. Ausgabe von "date -d%Y%m%d" in Variable "datum" ziehen
        2. Ausgabe von "ls verzeichnis/datum*html" in Variable "list" ziehen
        3. nachschauen, ob "datum" in "list" vorkommt.

        Vielleicht funktioniert ja auch "if [-f ...]" (ksh) mit Wildcards, dann kannst du Punkt 2 und 3 in einem erschlagen.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Hallo Titus,
          dieses Tutorial würde mich schon interessieren Also wenn du es findest ...

          Ich habe es jetzt so gelöst:

          exist=$(find . -maxdepth 1 -name '200*' -mtime 0)

          if [ 0"$exist" = 0 ]
          then
          mail $EMAIL1 -c$EMAIL2,$EMAIL3,$MAIL4 -s"Es wurden am $( date +"%d.%m.%Y" ) keine Dateien angeliefert!" < /tmp/epaper.info
          fi

          Gruß Olli
          Manus manum lavat.

          Kommentar


          • #6
            Original geschrieben von Churchill27
            Hallo Titus,
            dieses Tutorial würde mich schon interessieren Also wenn du es findest ...
            ist gedruckt ... und zum Einscannen bzw. Abtippen der 50 Seiten hab ich nicht wirklich Lust.
            Zur Not kannst du ja mal man ksh ausprobieren.

            Na, Hauptsache es funktioniert.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              ist da vielleicht was bei ?

              http://www.kornshell.com/doc/

              Kommentar

              Lädt...
              X