Einführung
Die touch
Die Hauptfunktion des Befehls besteht darin, einen Zeitstempel zu ändern. Üblicherweise wird das Dienstprogramm zum Erstellen von Dateien verwendet, obwohl dies nicht seine Hauptfunktion ist. Das Terminalprogramm kann die Änderungs- und Zugriffszeit für jede beliebige Datei ändern. Die touch
Der Befehl erstellt nur dann eine Datei, wenn die Datei noch nicht existiert.
Dieses Tutorial erklärt, wie man touch
verwendet Befehl mit grundlegenden und erweiterten Optionen.
Voraussetzungen
- Ein System, auf dem Linux ausgeführt wird.
- Zugriff auf die Befehlszeile/das Terminal.
- Grundlegende Terminalbefehle wie
ls
.
Touch-Befehlssyntax
Die grundlegende Syntax für touch
Befehl ist:
touch <options> <file or directory name>
Das Touch-Dienstprogramm funktioniert ohne Optionen oder mit mehreren Optionen für erweiterte Abfragen. Einige Optionen haben ein langes und ein kurzes Format. Wenn eine Option zusätzliche Informationen erfordert, sind die Daten sowohl für die Lang- als auch für die Kurzform obligatorisch.
Berühren Sie Befehlsoptionen
Nachfolgend finden Sie eine Referenztabelle für alle verfügbaren touch
Befehlsoptionen:
Option | Beschreibung |
---|---|
-a | Ändert die Zugriffszeit. |
-c --no-create | Vermeidet das Erstellen einer neuen Datei. |
-d=<string> --date=<string> | Ändert einen Zeitstempel mit einer Datumszeichenfolge. |
-f | Keine Auswirkung. In älteren BSDs erzwingt die Option Änderungen. |
-h --no-dereference | Ändert den Zeitstempel eines symbolischen Links. |
-m | Ändert die Änderungszeit. |
-r=<file> --reference=<file> | Ändert einen Zeitstempel in den Zeitstempel der referenzierten Datei. |
-t <stamp> | Ändert einen Zeitstempel, wobei der Stempel das Datums-/Zeitformat ist. |
--help | Öffnet das Hilfemenü. |
-v --version | Druckt die Programmversion. |
Linux-Touch-Beispiele
Bei der Arbeit mit Dateien unter Linux sind drei Zeitstempel zu beachten:
1. Zugriffszeit oder eine Zeit ändert sich, wenn ein Befehl den Inhalt der Datei liest, z. B. grep oder cat. Der ls -lu
Befehl zeigt die atime für Dateien an.
2. Uhrzeit ändern oder ctime ändert sich, wenn sich die Eigenschaften einer Datei ändern, z. B. Dateien umbenennen, Dateiberechtigungen ändern oder die Datei verschieben. Der ls -lc
Befehl zeigt die ctime für Dateien.
3. Änderungszeit oder mtime ändert sich, wenn sich der Inhalt einer Datei ändert. Der ls -l
Befehl zeigt die mtime für Dateien.
Die folgenden Beispiele werden alle vom Terminal ausgeführt und demonstrieren die Verwendung von Linux touch
Befehl mit verschiedenen Optionen und der zu erwartenden Ausgabe.
Datei erstellen
Die einfachste Art, den touch
zu verwenden Befehl ist ohne Optionen:
touch <filename>
Wenn eine Datei nicht vorhanden ist, erstellt touch die Datei. Zum Beispiel, um eine Datei namens test zu erstellen , ausführen:
touch test
Verzeichnisinhalte auflisten, um die Datei mit dem Befehl ls anzuzeigen.
Wenn die Datei bereits vorhanden ist, berühren Sie, um den Zeitstempel auf die aktuelle Zeit zu ändern.
Der Dateiinhalt und die Berechtigungen bleiben unverändert.
Mehrere Dateien erstellen
Die touch
Der Befehl kann auch mehrere Dateien erstellen. Listen Sie dazu die Dateinamen durch Leerzeichen getrennt auf:
touch <filename> <filename>
Zum Beispiel:
touch test1 test2
Eine nützliche Möglichkeit, touch
anzuwenden besteht darin, große Stapel von Dateien zu erstellen. Fügen Sie dazu geschweifte Klammern hinzu und geben Sie zusätzlich zum Dateinamen das erste und letzte Element an:
touch <filename{<start>..<finish>}>
Um beispielsweise zehn Dateien mit angehängter Nummerierung zu erstellen, führen Sie Folgendes aus:
touch test{1..10}
Der Befehl funktioniert auch mit Buchstaben. Zum Beispiel:
touch test_{a..j}
Wichtig :Der Befehl kann keine Zahlen und Buchstaben kombinieren.
Speziellen Zeitstempel festlegen
Verwenden Sie die touch
Befehl, um einen bestimmten Zeitstempel für eine vorhandene Datei festzulegen, zum Beispiel:
touch -t <timestamp> <filename>
Das Zeitstempelformat folgt einem bestimmten Muster:
[[CC]YY]MMDDhhmm[.ss]
CC
- die ersten beiden Ziffern für ein JahrYY
- die letzten beiden Ziffern für ein JahrMM
- der MonatDD
- der Taghh
- die Stundemm
- das Protokollss
- die Sekunden
Die Ziffern in den eckigen Klammern sind optional. Bei Verwendung des zweistelligen Jahresformats YY
einstellen zu jeder Zahl zwischen 0-68 nimmt automatisch CC
an ist 20, während 69-99 CC
voraussetzt ist 19.
Zum Beispiel, um den Zeitstempel für eine Datei namens test zu ändern bis Mitternacht des 1. Januar 1999 , ausführen:
touch -t 199901010000 test
Verwenden Sie den --full-time
Option mit ls
um Zeitstempeldetails anzuzeigen.
Dateizeitstempel mit Datumszeichenfolge festlegen
Die touch
Befehl verwendet das -d
Option zum Festlegen eines Zeitstempels mithilfe einer Datumszeichenfolge. Die Syntax lautet:
touch -d <string> <filename>
Die Datumszeichenfolge ist ein flexibles Zeitformat und akzeptiert viele verschiedene menschenlesbare Textformen. Einige Beispiele sind:
- Kalenderdaten, z. B.
19 August 2020
. - Tageszeit, z. B.
9:27pm
oder8:02am
. - Wochentage, wie
Sunday
,Monday
usw. - Relative Zeit, z. B.
5 years ago
,yesterday
,next tuesday
usw.
Ändern Sie beispielsweise den Zeitstempel mit -d
Option auf tomorrow
:
touch -d tomorrow test
Um eine vollständige Liste der möglichen String-Eingabeoptionen zu sehen, besuchen Sie die GNU-Dokumentation für Datumseingabeformate.
Zugriffszeit auf Aktuell ändern
Verwenden Sie den -a
-Tag, um die Zugriffszeit einer Datei zu ändern. Die allgemeine Syntax lautet:
touch -a <filename>
Um beispielsweise die Zugriffszeit einer Datei anzuzeigen, führen Sie Folgendes aus:
ls -lu
Als nächstes ändern Sie die Zugriffszeit für die Datei namens test mit:
touch -a test
Zeigen Sie zuletzt die geänderte Zeit an, indem Sie Folgendes ausführen:
ls -lu
Die Zugriffszeit ändert sich zum aktuellen Zeitstempel.
Zugriffszeit explizit ändern
Ändern Sie die Zugriffszeit auf einen bestimmten Zeitstempel, indem Sie -a
kombinieren und -t
Optionen:
touch -at <timestamp> <filename>
Überprüfen Sie die Zugriffszeit für Dateien, bevor Sie sie ändern:
ls -lu
Ändern Sie die Zugriffszeit für die Datei test bis Mitternacht 1. Januar 1999 , indem Sie den Zeitstempel hinzufügen:
touch -at 9901010000 test
Überprüfen Sie abschließend die Zugriffszeit nach der Änderung:
ls -lu
Nach Ausführung des Befehls ändert sich die Zugriffszeit auf den mit -t
eingestellten Wert -Tag.
Ändere die Änderungszeit in Aktuell
Die touch
Der Befehl bietet eine Option zum Ändern der Änderungszeit. Die grundlegende Syntax ist:
touch -m <filename>
Überprüfen Sie beispielsweise die mtime der Datei, bevor Sie den Zeitstempel ändern:
ls -l
Ändern Sie als Nächstes die Änderungszeit für die Testdatei:
touch -m test
Überprüfen Sie zuletzt die mtime nach der Änderung:
ls -l
Das -m
Option ändert die Änderungszeit standardmäßig auf den aktuellen Zeitstempel.
Ändere die Änderungszeit explizit
Kombinieren Sie das -m
Option mit -t
um den Änderungszeitstempel explizit anzugeben. Die allgemeine Syntax lautet:
touch -mt <timestamp> <filename>
Überprüfen Sie die mtime der Datei, bevor Sie sie ändern:
ls -l
Ändern Sie die Änderungszeit auf Mitternacht 1. Januar 1999 , indem Sie Folgendes ausführen:
touch -mt 9901010000 test
Überprüfen Sie abschließend noch einmal die Änderungszeit:
ls -l
Hinzufügen des -t
Option aktualisiert die Änderungszeit auf einen bestimmten Wert.
Ändern Sie sowohl die Änderungs- als auch die Zugriffszeit
Das Touch-Dienstprogramm ermöglicht das Ändern der Änderungs- und Zugriffszeit mit einem einzigen Befehl. Führen Sie dazu Folgendes aus:
touch -am <filename>
Bevor Sie atime und mtime ändern, prüfen Sie dies mit:
ls -lu
ls -l
Ändern Sie als Nächstes beide Zeiten für den Test Datei auf den aktuellen Zeitstempel:
touch -am test
Prüfen Sie atime und mtime nach der Änderung:
ls -lu
ls -l
Die kombinierten Optionen ändern beide Male auf einmal auf die aktuelle Zeit. Kombinieren Sie weiter mit dem -t
-Tag, um einen expliziten Zeitstempel anzugeben.
Vermeiden Sie das Erstellen einer neuen Datei
Standardmäßig generiert touch eine neue Datei, wenn sie nicht existiert. Bestimmte Situationen erfordern jedoch das Überschreiben dieser Funktionalität. Fügen Sie -c
hinzu Option, um das Erstellen einer neuen Datei beim Aufrufen von touch
zu vermeiden Befehl:
touch -c <filename>
Versuchen Sie beispielsweise, touch
auszuführen mit dem -c
Option mit einer nicht existierenden Datei:
touch -c new_test
Listen Sie den Inhalt des Verzeichnisses auf, um zu bestätigen, dass die Datei nicht vorhanden ist:
ls -l
Wenn die Datei andererseits existiert, wird touch
Der Befehl führt die bereitgestellten Operationen wie gewohnt mit der vorhandenen Datei aus.
Zeitstempel mithilfe einer Referenzdatei festlegen
Die touch
Der Befehl bietet eine nützliche Option, um den Zeitstempel einer Datei basierend auf dem Zeitstempel einer anderen Datei zu ändern.
Um eine solche Änderung durchzuführen, führen Sie Folgendes aus:
touch -r <reference file> <file>
Erstellen Sie beispielsweise eine neue Datei und referenzieren Sie den Zeitstempel eines vorhandenen Tests Datei:
touch -r test new_test
Überprüfen Sie den Zeitstempel für beide Dateien mit:
ls -l
Der new_test Datei erbt den Zeitstempel vom test Datei.
Zeitstempel mit einem symbolischen Link setzen
Die touch
Der Befehl ermöglicht das Ändern des Zeitstempels für symbolische Links, ohne den Zeitstempel der referenzierten Datei zu ändern. Verwenden Sie das -h
Option zum Ändern der Zeit für einen symbolischen Link:
touch -h <filename>
Überprüfen Sie beispielsweise die Uhrzeit für einen vorhandenen symbolischen Link, bevor Änderungen vorgenommen werden:
ls -l
Ändere den Zeitstempel für den symbolischen Link auf die aktuelle Zeit:
touch -h link
Überprüfen Sie abschließend noch einmal den Zeitstempel, um die Änderung zu bestätigen:
ls -l
Ohne das -h
Option, die touch
Befehl ändert nur den Test Zeitstempel der Datei.
Der Zeitstempel des symbolischen Links bleibt in diesem Fall unverändert.