Freitag, 2 Dez 2016 | IT-Beratung, Entwicklung, Systemanalyse
 

Hurrikan.de

Kreativität

Kreativität ist Intelligenz, die Spaß hat. Albert Einstein

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

Sind Sie traditioneller Bogenschütze? Eine neue sehr komfortable App zur Erfassung und Verwaltung von Treffern für 3D-Bogenschützen ist für iPhone-Geräte verfügbar. Die App Schiesszettel erscheint zunächst für den deutschsprachigen Raum.

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 select systimestamp, tsToUnixMS(systimestamp) as ms from dual;

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:

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;

 
 
Über Hurrikan.de

IT-Beratung und Software-Entwicklung und Systemanalyse

mehr »
Help & Support

Ihre Fragen und Probleme sind uns ein Anliegen und werden gerne beantwortet und gelöst.

Frequently Asked Questions (FAQ) »
Kontakt

web: hurrikan.de »
Email: projekte @ hurrikan.de

Impressum »