Hurrikan.de
Dateien finden unter Unix
Dateien sind unter Unix schnell gefunden ...
... mit find. Dem Kommando find gibt man ein Startverzeichnis an (also . für das aktuelle Verzeichnis oder / für die Wurzel) sowie einen Dateinamen. Wenn nur ein Teil des Dateinamens bekannt ist, kann man mit * (Stern) unbekannte Teile maskieren. Dann sollte man allerdings den Suchbegriff in Anführungszeichen (quoten) schreiben, damit nicht schon die Shell den Stern interpretiert.
Hier also ein paar Beispiele:
Suche ab / nach der Datei calculate.es und gibt den gefunden Pfad aus:
find / -name calculate.es -print
Statt -print kann man auch -ls angegeben, dann hat man gleich ein ls -l der Datei (statt nur den Pfad) in der Ausgabe:
find / -name calculate.es -ls
Mit -iname statt -name wird Gross-/Kleinschreibung ignoriert (i wie ignore, ist also keine Apple-Suche):
find / -iname calCuLate.Es -print
Ausgabe aller Pfade, die irgendwo im Dateinamen ein calcul enthalten, aber auf jeden Fall mit es enden:
find / -iname "*calcul*es" -print
Suche nur Objekte vom Typ Datei (f für ordinary files), alles andere, insbes. Verzeichnisnamen werden ignoriert:
find / -type f -iname calculate.es -print
Manchmal stören Meldungen wie "find: ...foo bar...: Permission denied", weil man kein Recht hat, in das betreffende Verzeichnis zu schauen. Dann lohnt es sich, die Fehlermeldungen wegzudrücken, am besten gleich nach /dev/null (die Fehlermeldungen kommen auf Standarderror, was für die Shell der file descriptor 2 ist):
find / -type f -name calculate.es -print 2>/dev/null
Viel Erfolg!
App für Bogenschützen

Oracle-Date in einen Unix-Timestamp wandeln
- Frage:
- Wie wandelt man einen Oracle-Timestamp in einen (aus Unix bekannten) Zeitstempel als Long in Millisekunden seit 01.01.1970 um?
- Antwort:
-
Mit z.B. tsToUnixMS(), wie in
Dabei wird aus z.B. "23-OCT-07 11.31.26.777834 AM +02:00" der Long-Wert "1193139086777". Ist kein tsToUnixMS() zur Hand? Einfach selbst definieren:select systimestamp, tsToUnixMS(systimestamp) as ms from dual;
CREATE OR REPLACE FUNCTION tsToUnixMS(datets in timestamp) RETURN number
IS
datum date := cast (datets as date);
BEGIN
return trunc(to_char(datets, '.FF') + 1000 *
(24*60*60 * (datum - to_date('19700101', 'yyyymmddhh24miss'))));
END;