Der Befehl touch erstellt leere Dateien oder aktualisiert die Zeitstempel bestehender Dateien und Verzeichnisse. Er gehört zu den grundlegenden Werkzeugen für die Dateiverwaltung auf der Kommandozeile.

Zeitstempel

Jede Datei besitzt drei Zeitstempel:

  • Zugriffszeit (atime) – Wann die Datei zuletzt gelesen wurde, etwa durch cat, vim oder grep.
  • Änderungszeit (mtime) – Wann der Inhalt der Datei zuletzt geändert wurde.
  • Statusänderungszeit (ctime) – Wann Metadaten wie Berechtigungen, Besitzer oder Speicherort zuletzt geändert wurden.

Mit dem Befehl stat kannst du alle Zeitstempel einer Datei anzeigen:

stat dokument.txt

Syntax des touch-Befehls

touch [OPTION]... DATEI...
  • OPTION – Optionen, die das Verhalten steuern.
  • DATEI – Eine oder mehrere Dateien, die erstellt oder deren Zeitstempel aktualisiert werden sollen.

Dateien erstellen oder Zeitstempel aktualisieren

Ohne Optionen erstellt touch eine neue, leere Datei. Falls die Datei bereits existiert, werden stattdessen Zugriffs- und Änderungszeit auf den aktuellen Zeitpunkt gesetzt:

touch dokument.txt

Mehrere Dateien gleichzeitig erstellen:

touch datei1.txt datei2.txt datei3.txt

Keine neue Datei erstellen

Mit der Option -c (--no-create) aktualisiert touch nur die Zeitstempel bestehender Dateien. Existiert die Datei nicht, passiert nichts:

touch -c dokument.txt

Nur bestimmte Zeitstempel ändern

Standardmäßig aktualisiert touch sowohl die Zugriffs- als auch die Änderungszeit. Mit speziellen Optionen kannst du gezielt nur einen dieser Zeitstempel ändern.

Nur die Zugriffszeit ändern

Die Option -a ändert ausschließlich die Zugriffszeit:

touch -a dokument.txt

Nur die Änderungszeit ändern

Die Option -m ändert ausschließlich die Änderungszeit:

touch -m dokument.txt

Einen bestimmten Zeitstempel setzen

Mit touch kannst du Zeitstempel auf einen beliebigen Zeitpunkt setzen – nicht nur auf die aktuelle Zeit.

Datum als Zeichenkette angeben

Die Option -d (--date) akzeptiert ein Datum in lesbarer Form:

touch -d '2024-06-01 11:02' dokument.txt

Auch relative Angaben sind möglich:

touch -d 'yesterday' dokument.txt
touch -d '2 weeks ago' dokument.txt

Zeitstempel im Kurzformat

Die Option -t erwartet einen Zeitstempel im Format [[CC]YY]MMDDhhmm[.ss]:

touch -t 202406011102 dokument.txt

Dieser Befehl setzt den Zeitstempel auf den 1. Juni 2024 um 11:02 Uhr.

Zeitstempel von einer anderen Datei übernehmen

Mit der Option -r (--reference) übernimmt touch die Zeitstempel einer Referenzdatei:

touch -r vorlage.txt ziel.txt

Die Datei ziel.txt erhält dieselben Zeitstempel wie vorlage.txt.

Standardmäßig ändert touch bei symbolischen Links die Zeitstempel der Zieldatei, nicht des Links selbst. Mit der Option -h (--no-dereference) änderst du stattdessen den Zeitstempel des Symlinks:

touch -h mein-symlink

Zusammenfassung

Der touch-Befehl erstellt leere Dateien und passt Zeitstempel an. Die wichtigsten Optionen:

OptionBeschreibung
-cKeine neue Datei erstellen
-aNur Zugriffszeit ändern
-mNur Änderungszeit ändern
-dDatum als Zeichenkette angeben
-tZeitstempel im Kurzformat setzen
-rZeitstempel von Referenzdatei übernehmen
-hZeitstempel des Symlinks ändern

Verwandte Artikel