[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal:Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] Mit dem Befehl `touch` lassen sich Zugriffs- und Änderungs-Zeitstempel von Dateien ändern. Existiert die von touch zu ändernde Datei nicht, wird sie neu angelegt. touch wird daher häufig auch zum Erstellen leerer Dateien verwendet. = Installation = Das Programm touch ist im essentiellen Paket * '''coreutils''' von Ubuntu enthalten und deshalb auf jedem System bereits vorinstalliert. = Aufruf = {{{#!vorlage Hinweis Der unter Windows vorhandene Zeitstempel ''"Erstellt am…"'' ist zwar auch bei Linux (`crtime`, ab ext3) vorhanden, kann aber nicht ausgelesen werden ([bug:997093:]). }}} Die allgemeine Syntax lautet [1]: {{{#!vorlage Befehl touch OPTION DATEI }}} `touch` kennt folgende Optionen: {{{#!vorlage Tabelle Optionen von `touch` +++ Option Beschreibung +++ `--help` Hilfe (eine erweitere Hilfe liefert der Befehl `info touch`) +++ `-a` Modifikation des Zugriffszeitstempels der Datei +++ `-c` oder `--no-create` (Wenn keine Datei vorhanden ist:) Keine Datei erstellen +++ `-d` oder `--date=DATUM` Verwendung von Datum oder STRING statt der augenblicklichen Zeit (siehe auch `-t`) +++ `-h` oder `--no-dereference` Modifikation des Zeitstempels symbolischer Links, nicht der verlinkten Datei +++ `-m` Modifikation des Änderungszeitstempels der Datei +++ `-r` oder `--reference=FILE` Verwendung der Zeitstempel der angegebenen Datei statt der augenblicklichen Zeit +++ `-t ZEITSTEMPEL` Verwendung von [JJ]MMTThhmm[.ss] statt der augenblicklichen Zeit }}} Pflichtangaben langer Optionen sind auch für die entsprechenden Kürzel obligatorisch. = Beispiele = Mit dem folgenden Befehl wird eine leere Datei '''datei.txt''' erstellt: {{{#!vorlage Befehl touch datei.txt }}} Die Datei '''datei.txt''' verfügt (nach einer Bearbeitung) über folgende Zeitstempel, wie sich mit [:stat:] ermitteln lässt: {{{#!vorlage Befehl stat datei.txt }}} {{{ File: `datei.txt' (…) Access: 2012-01-29 18:35:34.673330788 +0100 Modify: 2012-01-29 18:34:32.909780882 +0100 Change: 2012-01-29 18:35:34.673330788 +0100 }}} Mit dem Befehl {{{#!vorlage Befehl touch datei.txt }}} werden alle Zeitstempel auf die gegenwärtige Zeit geändert: {{{#!vorlage Befehl stat datei.txt }}} {{{ File: `datei.txt' (…) Access: 2012-01-29 18:42:14.564376369 +0100 Modify: 2012-01-29 18:42:14.564376369 +0100 Change: 2012-01-29 18:42:14.564376369 +0100 }}} Mit dem folgenden Befehl {{{#!vorlage Befehl touch -t 0912311627 datei.txt }}} werden Zugriff- und Änderungszeitstempel auf den 31. Dezember 2009, 16:27 Uhr geändert. {{{#!vorlage Befehl stat datei.txt }}} {{{ File: `datei.txt' (…) Access: 2009-12-31 16:27:00.000000000 +0100 Modify: 2009-12-31 16:27:00.000000000 +0100 Change: 2012-01-29 18:45:01.310207242 +0100 }}} Und schließlich wird mit dem Befehl {{{#!vorlage Befehl touch -m -t 1008170539 datei.txt }}} nur der Änderungszeitstempel auf den 17. August 2010, 5:39 Uhr geändert. {{{#!vorlage Befehl stat datei.txt }}} {{{ File: `datei.txt' (…) Access: 2009-12-31 16:27:00.000000000 +0100 Modify: 2010-08-17 05:39:00.000000000 +0200 Change: 2012-01-29 18:48:14.557583443 +0100 }}} Mit diesem Befehl {{{#!vorlage Befehl touch -r datei.txt -d "-2 months -5 days" datei.txt }}} werden Zugriff- und Änderungszeitstempel relativ zu den bestehenden um 2 Monate und 5 Tage zurückgesetzt (unter Beachtung [https://lists.gnu.org/archive/html/bug-coreutils/2017-03/msg00039.html eines Bugreports] {en}). Wird die `-r`-Option weggelassen, wird der Zeitstempel relativ zur gegenwärtigen Zeit berechnet. = Links = * [http://www.gnu.org/software/coreutils/ GNU Core Utilities] {en} * [wikipedia:Touch_(Unix):touch] * [:Shell/Befehlsübersicht:] {Übersicht} Übersicht über verschiedene Shell-Befehle # tag: Shell