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,vimodergrep. - Ä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.
Zeitstempel von symbolischen Links ändern
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:
| Option | Beschreibung |
|---|---|
-c | Keine neue Datei erstellen |
-a | Nur Zugriffszeit ändern |
-m | Nur Änderungszeit ändern |
-d | Datum als Zeichenkette angeben |
-t | Zeitstempel im Kurzformat setzen |
-r | Zeitstempel von Referenzdatei übernehmen |
-h | Zeitstempel des Symlinks ändern |