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.txt

touch <file1> <file2> <file3> — Erstellt mehrere Dateien auf einmal.

touch index.html style.css script.js

touch -c <file> — Aktualisiert den Zeitstempel nur, wenn die Datei existiert (legt sie nicht an).

touch -c maybe-exists.txt

Bestimmte Zeitstempel setzen

touch -t <YYYYMMDDhhmm> <file> — Setzt ein bestimmtes Datum und eine Uhrzeit.

touch -t 202601011200 file.txt

touch -t <YYYYMMDDhhmm.ss> <file> — Setzt Datum, Uhrzeit und Sekunden.

touch -t 202601011200.30 file.txt

touch -d '<date string>' <file> — Setzt den Zeitstempel über eine menschenlesbare Datumsangabe.

touch -d '2026-01-15 14:30:00' file.txt

touch -d 'next Monday' <file> — Setzt den Zeitstempel über einen relativen Datumsausdruck.

touch -d 'next Monday' reminder.txt

touch -d '-2 days' <file> — Setzt den Zeitstempel auf vor 2 Tagen.

touch -d '-2 days' oldfile.txt

Einzelne Zeitstempel ändern

touch -a <file> — Aktualisiert nur die Zugriffszeit (atime).

touch -a data.log

touch -m <file> — Aktualisiert nur die Änderungszeit (mtime).

touch -m config.yaml

touch -r <reference> <file> — Setzt den Zeitstempel auf den einer anderen Datei.

touch -r original.txt copy.txt

touch -a -d '<date>' <file> — Setzt eine bestimmte Zugriffszeit.

touch -a -d '2026-06-01' data.csv

Häufige Muster

touch .gitkeep — Erstellt einen Platzhalter, um ein leeres Verzeichnis in Git zu behalten.

mkdir -p logs && touch logs/.gitkeep

touch -r <src> <dest> — Synchronisiert die Zeitstempel zweier Dateien.

touch -r photo.jpg photo_edited.jpg

find . -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/.healthcheck

touch -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.

Verwandte Kommandos

  • mkdir – Verzeichnisse anlegen
  • stat – Zeitstempel und Metadaten einer Datei anzeigen
  • ls – Verzeichnisinhalte und Zeitstempel anzeigen