touch-Befehl unter Linux

Dateien erstellen und Timestamps setzen

Der touch Befehl wird in der Linux-Shell verwendet, um leere Dateien 📄 zu erstellen oder Timestamps 📆 anzupassen.

Wie bei anderen Befehlen kommt auch hier der Name von dem, was getan wird: touch für berühren.

Grundlegende Syntax

In schematischer Form sieht der Befehl so aus:

1
touch [OPTIONEN] DATEI

Hauptfunktionen von touch

Mit touch kannst du leere Dateien erstellen:

1
touch neue_datei.txt

Aber auch Timestamps lassen sich damit ändern:

1
touch bestehende_datei.txt

Das aktualisiert für bestehende Elemente den Zugriffs- und Änderungszeitpunkt.

Häufige Anwendungsfälle

Vielleicht fragst du dich jetzt: Warum oder wann kann ich das verwenden?

Hier ein paar mögliche Szenarien dazu.

  1. Bash-Skripte: automatisch leere Dateien anlegen zur späteren Bearbeitung
  2. Zeitstempel anpassen: nützlich zur Vorbereitung von Dateien für Tests oder Backups
  3. Schreibrechte prüfen: wenn man eine Datei nicht mit touch erstellen kann, fehlen möglicherweise Schreibrechte

Wichtige Optionen

Sehen wir uns nun wichtige Optionen an, bevor wir diese in konkreten Beispielen verwenden.

Allgemeine Optionen

Diese Parameter lassen sich generell mit touch verwenden:

  • -c oder --no-create = Dateien werden nicht erstellt
  • -r oder reference_file = verweist auf ein anderes Element, um dessen Timestamps zu verwenden

Arten von Zeitstempeln

Standardmässig verfügen Dateien unter Linux über 4 Timestamps. Das sieht man sehr gut mit stat auf ein Element:

1
2
3
4
5
6
7
8
9
stat neue_datei.txt
# Ausgabe:
  File: neue_datei.txt
  Size: 0               Blocks: 0        ...
  ...
Access: 2024-11-30 10:09:20.549145576 +0100
Modify: 2024-11-30 10:09:20.549145576 +0100
Change: 2024-11-30 10:09:20.549145576 +0100
 Birth: 2024-11-30 10:09:13.742297110 +0100

Davon können wir explizit Access und Modify ändern.

In diesem Fall kannst du folgende Parameter verwenden:

  • -a ändert den Zugriffszeitpunkt (Access)
  • -m ändert den Änderungszeitpunkt (Modify)

Angabe vom Zeitstempeln

Falls du bei touch keinen Zeitstempel angibst, wird der aktuelle Timestamp verwendet.

Aber du kannst natürlich auch eigene Werte für Datum und Zeit angeben. Das geht mit diesen Optionen:

  • -d oder --date = Datum angeben, wobei Werte wie 2024-02-29 16:21:42 oder next Thursday möglich sind
  • -t = Zeitstempel im Format [[CC]YY]MMDDhhmm[.ss], wie 202402291621.42

Damit hast du einen guten Überblick und wir können das mit expliziten Beispielen verwenden.

Beispiele

Lass uns von einfachen zu komplexen Fällen gehen, wobei wir das in Kategorien gliedern.

Erstellung ohne explizite Timestamps

So kannst du Dateien erstellen und dafür aktuelle Timestamps verwenden:

1
2
3
4
5
6
# eine Datei
touch file_1
# mehrere Dateien
touch file_1 file_2 file_3 file_4 file_5
# mehrere Dateien - kürzere Variante
touch file_{1..5}

Und du kannst angeben, dass du Elemente nicht erstellen willst, falls diese schon existieren:

1
touch -c file_1 file_2

Das ist hilfreich, um unerwünschte Datei-Erstellungen durch touch zu vermeiden. In diesem Fall werden nur die Zeitstempel existierender Elemente aktualisiert.

Erstellung mit spezifischen Timestamps

Aber statt dem aktuellen Timestamp kannst du auch eigene Werte für Zugriffszeitpunkt (Access) und Änderungszeitpunkt (Modify) angeben. Das geht so:

1
touch -t 202402291621.42 file_1

Erstellung mit Referenz-Datei

Die verwendeten Zeitstempel können auch von einer Referenz-Datei kommen:

1
touch -r bestehende_datei.txt file_1

Anpassung von Timestamps

Bei der Verwendung von touch auf bestehenden Elementen kannst du Zugriffszeitpunkt (Access) und Änderungszeitpunkt (Modify) anpassen. Zum Beispiel so:

1
2
touch -a -d 20240229 file_1
touch -m --date="next month" file_1

Timestamps bei Ordnern anpassen

Der Befehl touch wird zwar meist für Dateien verwendet, aber auch Ordner haben Timestamps, die sich damit definieren lassen:

1
2
touch -a --date="next year" ordner_1
touch -t 202402291621.42 ordner_2

Fazit

Der touch-Befehl ist ein unverzichtbares Werkzeug 🔧 in der Linux-Shell.

Du kannst ihn nutzen, um leere Dateien 📄 zu erstellen oder Timestamps 📆 anzupassen.

Hilfe zu touch

Mehr zu touch findest du unter man touch und tldr touch. Details zum Befehl tldr gibt es hier.

Erstellt mit Hugo
Theme Stack gestaltet von Jimmy