home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 300-399 / ff321.lzh / Whereis / whereis.docg < prev    next >
Text File  |  1990-02-27  |  25KB  |  531 lines

  1.                      ------- ANLEITUNG zu WHEREIS -------   Donnerstag, 15.2.90
  2. *******************************************************************************
  3. * whereis.doc zu whereis V1.18 (15-02-90) AMIGA-VERSION by R.Bless. 530 lines *
  4. * (C) 1989,1990 and future by Byteable Software Products (Roland Bless)       *
  5. *******************************************************************************
  6.  
  7. Copyright:
  8. ==========
  9. Das Programm ist FREEWARE, darf aber nur mit diesem Text kopiert werden!
  10. EINE KOMMERZIELLE VERWERTUNG DES PROGRAMMS IST VERBOTEN!
  11. "whereis" entwickelt und geschrieben von Roland Bless 1989/90 ("Byteable
  12. Software Products"). Alle Rechte auf Änderungen am Quell-Text/ Programm sind dem
  13. AUTOR vorbehalten! Keine Veröffentlichung des geänderten Quelltextes ohne
  14. Erlaubnis. Verbesserungsvorschläge bitte an den Autor (s. Adresse am Ende).
  15. Danke!
  16.  
  17. English manual also available!
  18.  
  19. Zur Anleitung:
  20. ==============
  21.  
  22.   Die Anführungszeichen "" und '' in den Beispielen brauchen/dürfen nicht mit
  23.   eingegeben werden. Sie sollen nur den Eingabetext abgrenzen bzw. hervorheben!
  24.   Wer nichts mit :-) oder ;-) anfangen kann, der möge den Text (Blatt/Monitor
  25.   oder Kopf [dann andersrum]) mal um 90° im Uhrzeigersinn drehen und entdeckt
  26.   vielleicht ein Smiley! Falls immer noch nicht klar, mal 'nen DFÜler fragen...
  27.   RELEASE-HISTORY am Ende!!
  28.  
  29. - KURZMANUAL (für die Checker :-):
  30.   ================================
  31.  
  32.   syntax:
  33.  
  34.   whereis [-cistapfdnj] [dev:path] filepattern
  35.  
  36.   Wildcards * und ? im filepattern erlaubt. CTRL-D bzw. CTRL-C bricht ab.
  37.  
  38.   Schalter:
  39.  
  40.   -c  CASE-SENSITIVE-Search
  41.   -i  Versions-Info
  42.   -s  sizes please! Gibt File-Größen in Bytes an.
  43.   -t  time & date! Gibt Datum und Zeit der Datei mit aus (letzte Änderung).
  44.       Format: tt-mm-jj hh:mm:ss (Tag-Monat-Jahr Stunde:Minute:Sekunde)
  45.   -a  all. Identisch mit -st, also Datum und Größe wird mit ausgegeben.
  46.   -p  Long path! Kann ausführlichen Pfad ausgeben, falls ein Pfad schon
  47.       angegeben wurde.
  48.   -f  files only! Es werden nur files und keine directories ausgegeben!
  49.   -d  dirs only! Es werden nur directories ausgegeben.
  50.   -n  no subdirectories! Es werden keine Subdirectories untersucht.
  51.       (eigentlich nur beim Listen sinnvoll z.B.: whereis -nfa "" *)
  52.   -j  jump into dir! Interaktives "cd". Es wird also bei Wunsch automatisch
  53.       ein "cd" in das richtige Unterverzeichnis ausgeführt und die Suche
  54.       beendet.
  55.  
  56. - Was ist whereis?
  57.   ================
  58.  
  59.   whereis zu deutsch "wo ist?".
  60.   Whereis ist ein Utility, um Dateien auf Festplatte/Diskette etc. zu suchen.
  61.   Weiterhin ersetzt "whereis" die sogenannten "fnams"/"recurdir"-Programme.
  62.   Da der AMIGA erst zum AMIGA wird, wenn er 'ne Festplatte hat (schließlich
  63.   liest er ja die meisten Befehle von der Disk), gibt es immer mehr Hard-Disk-
  64.   User, die dann mit der Zeit die Übersicht verlieren (so wie ich), in welchen
  65.   Sub-Directories die Files (Dateien) stehen.
  66.   Hat man z.B. vergessen wo sich das Programm 'DiskSalv' befindet gibt man ein-
  67.   fach "whereis disksalv" im CLI ein und die Antwort sollte bald erscheinen
  68.   (Hängt von der Größe und Belegung Ihrer zu untersuchenden Disk ab!)
  69.  
  70.   >> whereis ist nur vom CLI bzw. einer SHELL aus aufrufbar!
  71.  
  72. - whereis in Stichpunkten:
  73.   ========================
  74.  
  75.   + Case-dependent/independent  (unterscheidet Groß- und Kleinschreibung im
  76.                                  Dateinamen oder auch nicht! [Option -c])
  77.   + Wildcards * und ? benutzbar.
  78.  
  79.   + Zu jeder Zeit abbrechbar (mit CTRL-D oder CTRL-C)!
  80.  
  81.   + Interaktiver Modus mit "cd" (siehe Option -j).
  82.  
  83.   + Nicht rekursiver Algorithmus -> kein Problem mit der STACK-Größe (im
  84.     Gegensatz zu LookFor etc...)!
  85.  
  86.   + Kann jedes gültige Gerät oder Unterverzeichnis untersuchen.
  87.     (PRT: und solche Scherze natürlich nicht, aber z.B. "dh1:usr" :-)
  88.  
  89.   + Als "fnams"/"recurdir" einsetzbar. whereis in Verbindung mit PIPEs...
  90.     (Archiviert alle Dateinamen von Unterverzeichnissen für "ZOO", s. u.)
  91.  
  92.   + Gibt Datum und Größe der Files an, auch als "List all" einsetzbar.
  93.  
  94.   + weitere nützliche Optionen
  95. -------------------------------------------------------------------------------
  96.  
  97. - Der Aufruf von "whereis".
  98.   =========================
  99.  
  100.   Falls das Programm nicht umbenannt wurde (wird z.B. in 'wo','woist'), ist
  101.   es unter
  102.  
  103.   whereis [-acdfijnpst] [dev:path] filename
  104.  
  105.   vom CLI aus aufrufbar. Die Argumente in eckigen Klammern sind optional, d.h.
  106.   sie müssen nicht mit angegeben werden. Der Aufruf von whereis ohne Argument
  107.   gibt einen Hinweis zur Benutzung aus. Es ist egal wo die -Optionen stehen.
  108.  
  109.   Möglich ist auch, daß Sie das Programm mit "run", "Arun", "runback" im
  110.   Hintergrund laufen lassen. Es sind ebenso input/output-redirections erlaubt.
  111.   Bitte beachten Sie, daß der interaktive Modus ("whereis -j....") nur auf
  112.   einer interaktivem Eingabe gestartet wird, andernfalls bricht whereis mit der
  113.   Meldung "ERROR: Input must be interactive!" ab.
  114.  
  115.   Doch nun zum Syntax:
  116.  
  117.   Wird "whereis filename" eingegeben, so wird auf dem momentan aktiven Gerät/
  118.   Laufwerk/Partition nach "filename" gesucht und zwar vom Haupt-/Stammver-
  119.   zeichnis aus. Dieser "filename" kann auch die sog. Wildcards * und ? ent-
  120.   halten (daher auch besser: Suchmuster).
  121.  
  122.   - Wildcards:
  123.     ---------  "*" steht für keinen, einen oder mehrere beliebige Buchstaben.
  124.                    (identisch mit #? im AMIGA-DOS)
  125.                "?" steht für einen beliebigen Buchstaben.
  126.                Mehrere * oder ? sind erlaubt!!
  127.  
  128.     *.info   steht z.B. für alle Dateien mit .info am Ende ihres Namens.
  129.     *disk*   steht z.B. für alle Dateien mit "disk" irgendwo im Namen.
  130.     ?a*      steht z.B. für alle Dateien mit einem a als zweiten Buchstaben im
  131.              Namen.
  132.     ...
  133.  
  134.              - Steht ein oder mehrere ? am Ende des Suchmusters, so kann es
  135.                sein, daß ? auch für kein Buchstabe steht.
  136.                Z.B.: "a????" bringt alle Dateien mit einem a als ersten
  137.                Buchstaben und HÖCHSTENS 5 Buchstaben insgesamt auf den Schirm,
  138.                jedoch können alle Dateien mit weniger Lettern (also auch 'a'
  139.                'ab','abc'..etc.) darunter sein!
  140.                Vollkommen richtig behandelt whereis aber folgendes Muster:
  141.                "a??n" gibt alle Dateinamen mit 4 Buchstaben Länge und einem
  142.                "a" als ersten und einem "n" als letzten Buchstaben aus.
  143.  
  144.   - Pfadangaben:
  145.     -----------
  146.   Zusätzlich zum unbedingt erforderlichen Dateinamen-Muster kann das Ver-
  147.   zeichnis angegeben werden. Also z.B. df0:,dh1:,usr:bin,/bin,include oder
  148.   ähnliches. whereis ist es egal, ob zuerst der Pfad und dann das Suchmuster
  149.   kommt oder umgekehrt, wenn im Pfad ein ":" oder "/" vorkommt. Sonst nimmt
  150.   es das erste Argument als Pfadangabe und das zweite als Suchmuster.
  151.   Möglich sind ebenso "" für das momentan aktive Directory und / für das
  152.   übergeordnete (parent) oder : für das Hauptverzeichnis.
  153.  
  154.   Beispiele:
  155.  
  156.   "whereis usr:bin test" sucht z.B. von usr:bin aus "abwärts" nach test.
  157.                          und ist mit "whereis test usr:bin" identisch.
  158.   "whereis bin/ test"    sucht nach "test" im Verzeichnis "bin" (und weiter
  159.                          abwärts), wenn "bin" ein Unterverzeichnis des momentan
  160.                          aktiven Verzeichnisses ist. Identisch mit:
  161.   "whereis test bin/"    und
  162.   "whereis bin test"     Falsch wäre "whereis test bin" (sucht nach bin)!
  163.   "whereis df1: readme"  sucht z.B. nach readme auf df1:
  164.  
  165.   'whereis "" test'      sucht vom momentan aktiven Verzeichnis aus
  166.   'whereis / test'       sucht vom übergeordneten       ""      aus
  167.   'whereis : test'       sucht vom Hauptverzeichnis aus...
  168.  
  169.   Möglich ist z.B. auch "whereis /// Hallo".
  170.  
  171.   - Optionen/Schalter:
  172.     -----------------
  173.     Schaltern steht ein "-" voran!
  174.  
  175.     a: Alles (all). -a ist das gleiche wie "-st".
  176.        Bewirkt, daß bei gefundenen Dateien die Größe und das Datum mit aus-
  177.        gegeben werden. Für weitere Details (siehe s,t unten).
  178.  
  179.     c: CASE-DEPENDENT oder CASE-SENSITIVE.
  180.        whereis unterscheidet dann Groß- und Kleinbuchstaben.
  181.        Ohne Angabe von -c beim Aufruf unterscheidet whereis NICHT (default)!
  182.  
  183.     d: Directories only! Es werden nur Verzeichnisnamen ausgegeben.
  184.  
  185.     f: Files only! Die von whereis ausgegebenen Namen sind ausschließlich
  186.        Datei- und keine Verzeichnisnamen. Schließt "-d" aus und umgekehrt.
  187.        Gibt man "whereis -df ...." ein, so wird keine Ausgabe erzeugt (sehr
  188.        sinnig!).
  189.  
  190.     s: Sizes (please)! Die Größe der Dateien wird angezeigt. Bei Ver-
  191.        zeichnissen steht "(dir)". Z.B. nützlich, wenn man mehrere Versionen
  192.        von einer Datei auf der Platte "rumfliegen" hat und wissen möchte,
  193.        wo welche ist (neuere Versionen müssen nicht immer länger sein :-).
  194.  
  195.     t: time and date! Das Datum (und Uhrzeit) der Datei wird mit ausgegeben.
  196.        Dies ist ebenfalls praktisch, um verschiedene Versionen von einer Datei
  197.        unterscheiden zu können. (siehe auch -a!)
  198.        Das Datum wird im Format: tt-mm-jj hh:mm:ss
  199.                                  (Tag-Monat-Jahr Stunden:Minuten:Sekunden)
  200.        ausgegeben.
  201.  
  202.     p: Long pathnames! (vorher short-pathnames ab V1.17 geändert!);
  203.  
  204.        Ohne Pfadangabe beim Aufruf (z.B. whereis test) hat '-p' keine Wirkung,
  205.        da hier immer der ausführlichste Pfad angegeben wird, ebenso wenn die
  206.        Option '-j' gewählt wurde, wird LONGPATH automatisch gesetzt (da ich
  207.        den Pfad nach Amiga-DOS Konventionen setzen wollte)!
  208.  
  209.        Mit Pfadangabe beim Aufruf (z.B. whereis dh0:usr test) wird *ohne*
  210.        '-p', der kurze, das heißt der Pfad ausgegeben, der vom angegebenen
  211.        Pfad bis zur Datei führt und nicht der ganze Pfad vom
  212.        Hauptverzeichnis aus bis zur Datei. Damit ist es möglich "Assigned
  213.        Directories" ausgeben zu lassen... z.B.: etc: ist ein assigned
  214.        directory und befindet sich in
  215.              "Rob-HD1:usr/etc". Angenommen die Datei "test" befindet sich in
  216.               etc:test, dann wirkt sich -p so aus:
  217.                       Eingabe:                    Ausgabe:
  218.  
  219.                   "whereis etc: test"    --> "etc:test"
  220.                   "whereis -p etc: test" --> "Rob-HD1:usr/etc/test"
  221.  
  222.                   Ist usr: das aktive Directory dann hätte
  223.                   'whereis "" test'    --> "etc/test" zur Folge, und
  224.                   'whereis -p "" test' --> "Rob-HD1:usr/etc/test"
  225.  
  226.        Wird also '-p' eingegeben, so wird der lange Pfadname ausgegeben, das
  227.        heißt auch statt "dh0:" dann "Rob-HD1:".
  228.  
  229.     n: No sub-directories! Es wird nur das angegebene Verzeichnis untersucht,
  230.        nicht die sich verzweigenden Verzeichnisse! Diese Option mag blödsinnig
  231.        erscheinen, denn wenn man "whereis sys:c type -n" eingibt, weiß man evtl.
  232.        ja bereits, wo sich die Datei befindet! Diese Option ist aber eher für
  233.        die "list"-Funktionen von whereis gedacht. Man kann so auch in kurzer
  234.        Zeit feststellen, ob sich die Datei im vermuteten Directory befindet
  235.        (wäre auch mit "List sys:c/type" möglich oder besser..) oder nicht.
  236.        Man denke z.B. auch an 'whereis : * -dn': Es listet alle Unterver-
  237.        zeichnisse vom Hauptverzeichnis aus (entspricht "list : dirs")..etc...
  238.        Vielleicht kann man's ja mal gebrauchen?! ;-)
  239.  
  240.     j: Jump into dir! Dies ist eine interaktive Funktion von whereis:
  241.        Findet whereis einen passenden Eintrag, so gibt es diesen wie üblich auf
  242.        "stdout" aus. Dann wird aber gefragt "Change to that dir? [yNq]:". Hier
  243.        sind drei Antworten möglich:
  244.        y,Y: Yes->Ja, wechsele das aktuelle Directory der Shell/des CLI in das,
  245.             welches whereis angibt. Danach bricht whereis die Suche ab und man
  246.             befindet sich im richtigen Verzeichnis (da wo die gesuchte Datei
  247.             steht).
  248.        q,Q: Quit. Bricht die Suche sofort ab. Man befindet sich im Verzeichnis,
  249.             von wo man whereis aufrief.
  250.        n,N und alle anderen Zeichen (daher ist N groß): whereis sucht weiter...
  251.  
  252.        Bitte beachten Sie, daß diese Option nur Sinn in Verbindung mit einer
  253.        "interaktiven" (Sie müssen etwas eingeben können!) Standardeingabe Sinn
  254.        macht, andernfalls bricht "whereis" mit der Fehlermeldung:
  255.        "ERROR: Input must be interactive!" ab, oder Sie erhalten nur die
  256.        Meldung: "Change to that Dir? [yNq]:", weil die Standardausgabe
  257.        umgeleitet wurde. In diesem Fall drücken Sie am besten q oder Q und
  258.        starten erneut, ohne Umlenkung der Ausgabe! Nicht erlaubt ist also z.B.
  259.        "run whereis -j test" oder "whereis <nil: -j test"
  260.  
  261.        Diese Option beiinhaltet automatisch '-p' (lange Pfadnamen).
  262.  
  263.     i: Gibt die Versionsnummer aus.
  264.  
  265.  
  266.     Es ist egal wo die Schalter stehen:
  267.  
  268.     whereis -c df0: test
  269.     whereis df0: -c test
  270.     whereis df0: test -c
  271.  
  272.     sind alle identisch.
  273.     Außerdem ist es egal ob die Optionen einzeln oder zusammen angegeben
  274.     werden:
  275.  
  276.     whereis -cfp usr: test
  277.     whereis -p usr: test -c -f
  278.     whereis -f usr: -p test -c
  279.     whereis -c -p -f usr: test
  280.     whereis test -pfc usr:
  281.  
  282.     Die Aufrufe sind alle identisch.
  283.  
  284.   - whereis und PIPES: Vergiß "fnams"/"recurdir"!
  285.     ---------------------------------------------
  286.     Das Archivierungsprogramm "ZOO" konnte bisher keine kompletten Directories
  287.     mit Sub-Directories packen. Dazu mußte man alle Dateinamen inklusive Pfad
  288.     in eine Datei schreiben (lassen) und diese dann von ZOO einlesen lassen.
  289.     Dafür gab es bisher "fnams" und auch "recurdir/mydir" zuletzt auf FISH-Disk
  290.     284, welches auch einigen STACK brauchte (Der GURU war manchmal nicht weit
  291.     :-). Ich denke, daß "fnams/mydir/recurdir" durch whereis ersetzt wird.
  292.     Zumal recurdir/mydir 5516 Bytes groß und rekursiv ist!
  293.  
  294.     Gibt man z.B. "whereis >usrdir usr: * -f" ein, so kann man in der Datei
  295.     "usrdir" den gesamten Verzeichnisbaum von usr: wiederfinden.
  296.  
  297.     Ideal ist die Verwendung von whereis mit PIPES:
  298.     -----------------------------------------------
  299.     Beispiel für die ARP-Shell:
  300.     whereis -fp usr: * | zoo aI usrfiles
  301.  
  302.     Normale Shell:
  303.     run whereis >pipe:files -fp usr: * +
  304.     run zoo <pipe:files aI usrfiles
  305.  
  306.     Dies sollte ohne Probleme [1] laufen!
  307.  
  308.     Eine sortierte Ausgabe erhält man z.B. in der ARP-Shell durch:
  309.     whereis dh1: c* | sort
  310.     Daher habe ich keine SORT-Option vorgesehen...
  311.  
  312.     [1]: Achtung! Das PIP: Device von ARP 1.3 (ConHandler vom ConMan) kann
  313.          abstürzen!! Der Fehler liegt aber offensichtlich beim ConHandler, da
  314.          auch andere Programme einen Absturz hervorrufen: z.B. type foo | sort
  315.          Daher ist eventuell aus Gründen der Sicherheit das PIPE:-device
  316.          vorzuziehen.
  317.  
  318. - whereis bei der Ausführung:
  319.   ===========================
  320.  
  321.   whereis durchsucht vom angegebenen Verzeichnis aus alle sich verzweigenden
  322.   Unterverzeichnisse und gibt Übereinstimmungen mit dem Suchmuster auf der
  323.   Standardausgabe (STDOUT) aus. whereis ist nicht rekursiv programmiert und
  324.   dürfte daher keinen STACK-Überlauf verursachen!
  325.   Tritt ein Fehler auf, so wird dieser auf STDERR ausgegeben, daß heißt wenn
  326.   die Standardausgabe umgelenkt wurde, so erscheint die Meldung im CLI-Window
  327.   und nicht in der Ausgabedatei.
  328.  
  329.   Falls man sich vertan hat und nicht unbedingt die Zeit verschenken will,
  330.   kann man jederzeit whereis unterbrechen:
  331.   CTRL-D oder CTRL-C
  332.   werden dann whereis mit der Meldung "*** BREAK ***" abbrechen.
  333.  
  334.   Aber!!! Die Bearbeitung von einem CTRL-C/D wird erst vorgenommen, wenn
  335.   whereis in der Verzeichnisstruktur ein Verzeichnis "nach oben klettert".
  336.   Das heißt also, daß wenn man sich z.B. das gesamte c: Directory aus-
  337.   geben läßt, welches viele Einträge enthält, wird das CTRL-D erst spät
  338.   bearbeitet, aber WHEREIS BRICHT AUF JEDENFALL AB!!
  339.   Im Normalfall (wenig Ausgabe und wenig Dateien im Directory) merkt man
  340.   nur eine geringe Verzögerung. Es sollten daher keine Probleme entstehen.
  341.   Ich habe aus Laufzeitgründen die Abfrage eben nicht bei/nach jedem Ein-
  342.   trag gesetzt, daher muß man eben eine gewisse Trägheit/Reaktionszeit in
  343.   Kauf nehmen. Kein Vorteil ohne Nachteil...:-)
  344.  
  345.   CTRL-D reagiert auch relativ schnell bei "whereis *", während CTRL-C bei
  346.   wenig Ausgabe auch funktioniert. Wird viel Text ausgegeben (eben wie bei
  347.   "whereis *") so muß man eventuell oft CTRL-C drücken [2] bevor "whereis"
  348.   abbricht. Es ist daher CTRL-D vorzuziehen.
  349.  
  350.   Auch bei einem Abbruch wird der durch "whereis" belegte Speicher anständig
  351.   freigegeben...(sollte an sich selbstverständlich sein)!!
  352.   Wird whereis durch CTRL-D/CTRL-C, den interaktiven Modus (-j) oder einen
  353.   Fehler abgebrochen, so erscheint am Ende "-- Aborted!".
  354.  
  355.   [2]: Eine WARNUNG an alle ConMan (V1.3)-Benutzer: Hält man CTRL-C oder CTRL-D
  356.        zu lange gedrückt, so stürtzt der Rechner ab. Dies ist kein Bug von
  357.        whereis (gottseidank! Habe ca. 1/2 Tag gebraucht, um festzustellen, daß
  358.        es *nicht* an meinen SetSignal-Routinen lag), sondern vom ConMan V1.3.
  359.        Mit NEWCON: oder (dem original) CON: gibt' keine Probleme!
  360.  
  361.   Tips zur effizienteren Nutzung von "whereis":
  362.   ---------------------------------------------
  363.   Schränken Sie, wenn es möglich ist, die zu durchsuchenden Directories ein!
  364.   Benutzen Sie am besten "assigned dirs" und rufen z.B.
  365.   "whereis utils: Disksalv" auf. Dadurch halten Sie die Suchzeiten kurz, denn
  366.   eine größere Partition/Festplatte komplett zu durchsuchen wird einige Zeit
  367.   dauern (ca. 1min für 20MBytes, obwohl das sehr stark von der "scan"-
  368.   Geschwindigkeit/Zugriffszeit ihrer Platte abhängt!).
  369.   Eine andere gute Möglichkeit ist, "whereis" im Hintergrund laufenzulassen,
  370.   während man weiterarbeitet (wofür haben wir sonst "Multitasking"? ;-), also
  371.   z.B. "run whereis >T:found dh1: *.c". Das sollte man verwenden, wenn man
  372.   eben die Suche nicht einschränken kann und ganze Partitionen zu durchsuchen
  373.   und noch etwas anderes zu tun hat (Text/Programm etc. schreiben)!
  374.  
  375.  
  376. - whereis Fehlermeldungen:
  377.   ========================
  378.  
  379.   whereis ist in English gehalten und gibt daher auch die Fehler auf English
  380.   aus. Hier die Übersetzungen und Ursachen:
  381.  
  382.   "FATAL ERROR: Not enough memory available!"
  383.   -------------------------------------------
  384.   Fataler Fehler: Nicht genug Speicher (FAST/CHIP-RAM) verfügbar!
  385.   Grund: Andere Programme haben (zu)viel Speicher belegt. Whereis braucht etwas
  386.          Speicher zum merken der Sub-Directories.
  387.  
  388.   "ERROR: Can't find that directory or device:"
  389.   ---------------------------------------------
  390.   Kann das Verzeichnis oder Gerät nicht finden bzw. ansprechen.
  391.   Grund: Wahrscheinlich ein Tippfehler in der Pfadangabe. whereis kann
  392.          auf dieses dir/dev keinen "Lock" holen!
  393.  
  394.   "ERROR: Destroyed entry! Couldn't examine this ' '. Very strange!"
  395.   ------------------------------------------------------------------
  396.   Zerstörter Eintrag (Dir/File)! Kann nicht weitere Infos kriegen. Sehr
  397.   merkwürdig!
  398.   Grund: Tja, den weiß ich auch nicht...strange...whereis konnte nämlich
  399.          ein "Lock" auf den Entry holen, aber EXAMINE gab einen Fehler an!
  400.  
  401.   "ERROR: Can't handle so many arguments. See usage!"
  402.   ---------------------------------------------------
  403.   Kann nicht soviele Argumente gebrauchen! Syntax überprüfen!
  404.   Grund: Sie haben mehr als nur den Pfad und das Suchmuster angegeben.
  405.  
  406.   "ERROR: Please no path in the filename/pattern! See usage!"
  407.   -----------------------------------------------------------
  408.   Bitte keine Pfadangaben im Dateinamen bzw. Suchmuster! Syntax überprüfen!
  409.   Grund: Sie haben im Suchmuster ein "/" oder ":" eingegeben.
  410.  
  411.   "ERROR: Illegal Option ' '!"
  412.   ----------------------------
  413.   Illegale Option! (tolle Übersetzung, gell?)
  414.   Grund: Diesen Schalter (alles was nach dem "-" folgt) kennt whereis nicht!
  415.  
  416.   "ERROR: I've no filepattern to search for!"
  417.   -------------------------------------------
  418.   Ich habe kein Datei(namen)muster nach dem ich suchen soll!
  419.   Grund: whereis benötigt immer ein Suchmuster, nach dem gesucht wird.
  420.          Sie haben aber nur eine Option/Schalter angegeben.
  421.  
  422.   "STRANGE ERROR: Something strange happend...!"
  423.   ----------------------------------------------
  424.   Seltsamer Fehler: Etwas Merkwürdiges hat sich ereignet...!
  425.   Grund: Beim Hinabklettern des Verzeichnisbaumes konnte whereis kein "Lock"
  426.          auf ein Unterverzeichnis legen. Dieser Fehler sollte nie(!) er-
  427.          scheinen.
  428.          Wird auch noch bei einem fehlerhaften CD mit -j gemeldet.
  429.  
  430.   "ERROR: Input must be interactive!"
  431.   -----------------------------------
  432.   Tritt nur im Zusammenhang mit der "-j" Option auf. Es wurde versucht, den
  433.   interaktiven Modus im Hintergrund ("run whereis -j ...") laufen zu lassen,
  434.   oder die Standardeingabe auf ein nicht-eingabefähiges Gerät umgelenkt
  435.   ("whereis <t:tmp -j ..."). Bitte Starten Sie erneut ohne "run" oder "<".
  436.  
  437. - Zukünftige Versionen von "whereis":
  438.   ==================================
  439.  
  440.   Falls ich nicht "totgebuht/-flamed" werde, weil es schon längst ein viel
  441.   besseres Programm gibt und ich Hinterwäldler nur noch nie was davon gehört
  442.   habe, könnte:
  443.  
  444.   - eine Listing option: Gibt zusätzliche Angaben wie Größe und Datum
  445.                          formatiert aus. Zu lange Namen werden abgeschnitten...
  446.  
  447.   - Ein schnellerer, kompakterer Code folgen (vielleicht mit inline oder
  448.     100% Assembler...), obwohl das nicht mehr viel bringt. Das hängt mehr
  449.     von der Pladde und dem Controller ab!
  450.  
  451.     ...folgen.
  452.  
  453.   Wie gesagt, falls ich positive Resonanz höre...oder mir jemand schreibt:
  454.   "Jau, genau das brauch ich...!". =8-)
  455.  
  456.  
  457. - Noch'n paar Worte zum Schluß
  458.  
  459.   Ich habe dieses Programm geschrieben, weil ich es leid war mit meinen
  460.   bisherigen "whereis/wo/findpath" Programmen zu suchen:
  461.   Alle wiesen gravierende Mängel auf.
  462.   Entweder kein case-independent search und nicht abbrechbar, oder
  463.   zu langsam und keine Wildcards :-( bäähh! Also sagte ich mir, selbst ist
  464.   der Mann (oder für die Mädels "selbst ist die Frau!" ;-) und schrieb mal
  465.   immer ein bischen. Das ganze hat ca. 1 Woche gedauert. Es mag sein, daß
  466.   es effektivere und schnellere oder sogar komfortablere "whereis" Programme
  467.   gibt, aber was solls...schickt mir sonst mal per Mail so ein Executable oder
  468.   Source zu. Mein whereis war im Vergleich zu dem, was ich noch hatte nur <2,5%
  469.   langsamer. Also?!
  470.   Ich möchte "fnams|recurdir|mydir" nicht runtermachen, aber whereis vereint nun
  471.   mal zwei Funktionen in einem Programm...;-)
  472.   Spielt mal mit whereis und Ihr werdet neue Anwendungsmöglichkeiten entdecken!
  473.   In verschiedensten Kombinationen mit den "switches" (Schaltern) kann whereis
  474.   einem das Leben erleichtern...geht mir jedenfalls so!
  475.  
  476.  
  477. Viel Spaß mit whereis!
  478.  
  479.  Roland Bless
  480.  
  481. P.S.: Ich möchte vor allem noch Matt Dillon für seinen wundervollen DME danken!
  482.       He's a great programmer and I miss the power of DME in UNIX! Anyone
  483.       who'll port it? ;-)
  484.  
  485. -------------------------------------------------------------------------------
  486. RELEASE-HISTORY:
  487. Versions Liste:
  488.  
  489. V1.14 : Erste veröffentlichte ;-) whereis Version.
  490.         Fehler: Läuft nur mit FAST-RAM nicht mit NOFASTMEM (Nur Chip-RAM)!
  491.  
  492. V1.14a: Fehler von V1.14 entfernt (Ram-Anforderung egal [NULL]) :-)
  493.         Nicht veröffentlicht.
  494.  
  495. V1.15:  Ein paar wunderbare neue Schalter/Optionen:
  496.         -a, -s, -t, -f, -d, -p -n
  497.         Fehler: -a Option (break vergessen...:-).
  498.         NOT RELEASED.
  499.  
  500. V1.16:  Source optimiert: minimal schnellerer, aber kleinerer Code als bei
  501.         V1.15. Fehler bei der -a Option beseitigt. Errorhandling ergänzt:
  502.         No filepattern to search for...
  503.         Fehler: Bei zu wenig Speicher erscheint zwar die Fehlermeldung,
  504.                 aber der belegte Speicher wird nicht mehr richtig freigegeben!
  505.                 In Versionen ab 26-11-89 korrigiert.
  506.  
  507.         Wildcard-Handling verbessert: "*?*??*a*c" etc. ist nun perfekt!
  508.  
  509. V1.16a: Fehler im Wildcard-Handling beseitigt: Filenamen mit einem Leerzeichen
  510.         im Namen wurden bei der "*"-Wildcard nicht erkannt! Ein wirklich sub-
  511.         tiler Fehler. Trat nicht bei der Option -c auf, da dort nicht mit
  512.         toupper() gearbeitet wurde ( Man beachte: 0x20 & 0x5f == '\0'!)
  513.         Habe ich durch Zufall entdeckt...(wann hat man schonmal files mit
  514.         einem Space im Namen auf der Platte rumfliegen...? ;-)
  515.  
  516. V1.17:  -j option hinzugefügt (Puh! Und das ohne eine DOS.library Doku!).
  517.         -p Schalter geändert! (siehe Optionen -p)
  518.         Break-Verhalten gecheckt.
  519.  
  520. V1.18:  Fehler beim CD korrigiert (Der : beim Namen von Volumes muss bleiben!)
  521.  
  522. Source (in "C")auf Anfrage bei mir:
  523. +----------------------------------------------------------------------------+
  524. |R o l a n d   B l e s s |UUCP: rob@spirit.UUCP (FRG-only [SubNet])          |
  525. |(rob)                   |  or  rob%spirit@impch.imp.com (worldwide)         |
  526. |Moersenbroicher Weg 151 |FIDO: 2:242/20 Roland Bless  | BTX:0211623818-0001 |
  527. |FRG- 4000 Duesseldorf 30|---------------------------------------------------|
  528. |voice +49 211 623817    |  // AMIGA is multi,| "They build machines that    |
  529. |                        |\X/ AMIGA is more!  |  they can't control..." STING|
  530. +---------s-p-i-r-i-t-s---i-n---t-h-e---m-a-t-e-r-i-a-l---w-o-r-l-d----------+
  531.