touch — Dateien anlegen und Zeitstempel setzen
Praxis-Guide zu touch: leere Dateien anlegen sowie Zugriffs- und Änderungszeit (atime/mtime) setzen – nützlich für Platzhalter und Build-Systeme.
touch hat zwei Aufgaben: Es legt leere Dateien an und es aktualisiert die Zeitstempel vorhandener Dateien – die Zugriffszeit (atime) und die Änderungszeit (mtime). Existiert die Datei noch nicht, wird sie leer erstellt; existiert sie bereits, bleibt ihr Inhalt unangetastet und nur die Zeitstempel wandern auf „jetzt". Das macht touch zum Werkzeug der Wahl für Platzhalter wie .gitkeep, für Health-Check-Marker in Containern und um Build-Systeme wie make gezielt zum Neubauen zu bewegen. Dieser Guide zeigt dir das Anlegen von Dateien, das Setzen konkreter Zeitstempel und typische Praxismuster.
Dateien anlegen
touch <file> — Erstellt eine leere Datei (oder aktualisiert den Zeitstempel, falls sie existiert).
touch newfile.txttouch <file1> <file2> <file3> — Erstellt mehrere Dateien auf einmal.
touch index.html style.css script.jstouch -c <file> — Aktualisiert den Zeitstempel nur, wenn die Datei existiert (legt sie nicht an).
touch -c maybe-exists.txtBestimmte Zeitstempel setzen
touch -t <YYYYMMDDhhmm> <file> — Setzt ein bestimmtes Datum und eine Uhrzeit.
touch -t 202601011200 file.txttouch -t <YYYYMMDDhhmm.ss> <file> — Setzt Datum, Uhrzeit und Sekunden.
touch -t 202601011200.30 file.txttouch -d '<date string>' <file> — Setzt den Zeitstempel über eine menschenlesbare Datumsangabe.
touch -d '2026-01-15 14:30:00' file.txttouch -d 'next Monday' <file> — Setzt den Zeitstempel über einen relativen Datumsausdruck.
touch -d 'next Monday' reminder.txttouch -d '-2 days' <file> — Setzt den Zeitstempel auf vor 2 Tagen.
touch -d '-2 days' oldfile.txtEinzelne Zeitstempel ändern
touch -a <file> — Aktualisiert nur die Zugriffszeit (atime).
touch -a data.logtouch -m <file> — Aktualisiert nur die Änderungszeit (mtime).
touch -m config.yamltouch -r <reference> <file> — Setzt den Zeitstempel auf den einer anderen Datei.
touch -r original.txt copy.txttouch -a -d '<date>' <file> — Setzt eine bestimmte Zugriffszeit.
touch -a -d '2026-06-01' data.csvHäufige Muster
touch .gitkeep — Erstellt einen Platzhalter, um ein leeres Verzeichnis in Git zu behalten.
mkdir -p logs && touch logs/.gitkeeptouch -r <src> <dest> — Synchronisiert die Zeitstempel zweier Dateien.
touch -r photo.jpg photo_edited.jpgfind . -name '*.txt' -exec touch {} + — Aktualisiert die Zeitstempel aller passenden Dateien.
find . -name '*.cache' -exec touch {} +touch /tmp/.healthcheck — Erstellt eine Health-Check-Marker-Datei (verbreitet in Docker).
touch /tmp/.healthchecktouch -d '1970-01-01' <file> — Setzt den Zeitstempel auf den Unix-Epoch (erzwingt einen Neubau in Build-Systemen).
touch -d '1970-01-01' Makefile Fazit
touch ist unscheinbar, aber im Alltag erstaunlich vielseitig: das schnellste Werkzeug, um leere Dateien anzulegen, und die einfachste Art, Zeitstempel gezielt zu manipulieren. Mit -t und -d setzt du Datum und Uhrzeit absolut oder relativ, mit -a/-m änderst du nur Zugriffs- oder Änderungszeit, und mit -r übernimmst du die Zeit einer Referenzdatei. Praktisch ist das vor allem bei Build-Systemen wie make, die ihre Entscheidungen anhand der mtime treffen – ein gezieltes touch erzwingt oder verhindert einen Neubau. Beachte, dass touch eine vorhandene Datei niemals leert: Es ändert nur die Metadaten, nie den Inhalt.
Weiterführende Links
- ubuntuusers-Wiki: touch – deutschsprachige Erklärung mit Beispielen
- GNU coreutils: touch invocation – offizielle Referenz aller Optionen (englisch)