touch (Unix)
touch ist ein Unix-Kommandozeilenprogramm zur Änderung der Zugriffs- und Änderungszeitstempel (atime und mtime) einer Datei oder eines Verzeichnisses. Es ist ein Standardprogramm Unix-ähnlicher Betriebssysteme nach POSIX-Standard, das in Version 7 von AT&Ts Unix auftauchte. Das Programm verwendet den POSIX-Systemaufruf utime(2)
, welcher auf Sekunden genau arbeitet. In BSD-Systemen wurde die Funktion utime(3)
durch utimes(2)
abgelöst. Die Funktion utimensat(2)
im Linux-Kernel kann die Zeitstempel nanosekundengenau verändern.
Mit touch kann nicht der ctime
-Stempel (Change- bzw. Creation-Stempel also Änderungs- bzw. Erstellungszeitstempel) einer Datei geändert werden.
Bedienung
BearbeitenDas Programm touch wird über die Befehlszeile mit dem Befehl touch
und einer Dateiangabe aufgerufen. Dabei kann eine Zeitangabe entsprechend der Unixzeit angegeben werden. Wenn kein Zeitpunkt angegeben wird, wird die aktuelle Systemzeit verwendet. Falls die angegebene Datei nicht existiert, wird sie erstellt, sofern keine Option das unterbindet. Es wird daher auch verwendet, um (leere) Dateien ohne weitere Bearbeitung zu erzeugen. Optionen können angegeben werden, um das Verhalten des Programms zu bestimmen. Die Optionen -a
, -c
, -m
, -r
und -t
sind in POSIX standardisiert.
Optionen
Bearbeiten-a
- ändert nur den Access Stempel (Zugriffszeit)
-c
- keine neuen (leeren) Dateien erstellen, wenn der Name einer nicht existenten Datei angegeben wird
-d
, --date=STRING
- analysiert STRING und nutzt es anstelle der aktuellen Zeit
-f
- (wird ignoriert)
-m
- ändert nur den Modification Stempel (Änderungszeit)
-r
, --reference=FILE
- nutzt die Zeiten der angegebenen Referenzdatei statt der aktuellen Zeit
-t STAMP
- nutzt die im Format
[[CC]YY]MMDDhhmm[.ss]
angegebene statt der aktuellen Zeit
--time=WORD
- ändert die angegebene Zeit:
- WORD darf sein: access, atime, use (äquivalent zu
-a
) - WORD darf sein: modify, mtime (äquivalent zu
-m
)
- WORD darf sein: access, atime, use (äquivalent zu
--help
- zeigt die Hilfe an und beendet das Programm
--version
- gibt die Versionsinformation aus und beendet das Programm
Andere Betriebssysteme
BearbeitenProgramme, die ähnliche Operationen ausführen, sind auch für andere Betriebssysteme wie Microsoft Windows und Mac OS Classic verfügbar.
In DR-DOS ist der TOUCH
Befehl ab DR-DOS 3.40 vorhanden.
Um eine neue, leere Datei (mit dem Namen datei) in MS-DOS anzulegen, kann die Befehlssequenz echo off > datei && echo on
verwendet werden.
Der COPY
Befehl gefolgt von dem /B
Parameter, dem Dateinamen und der anschließenden Zeichenfolge +
(sowie optional ,,
) setzt den Zeitstempel der Datei auf die aktuelle Zeit:[1]
copy /B datei+
Weblinks
Bearbeitentouch(1)
: change file access and modification times – Open Group Base Specificationtouch(1)
: change file access and modification times – OpenBSD General Commands Manualtouch(1)
: Zeitstempel von Dateien ändern – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
Einzelnachweise
Bearbeiten- ↑ Raymond Chen: Why is the syntax for touching a file from the command prompt so strange? In: Microsoft Devblogs. Microsoft, 10. Juli 2013, abgerufen am 19. August 2024 (englisch).