Touch-Befehl in Linux
Der Touch-Befehl in Linux wird zum Ändern von Dateizeitstempeln verwendet, aber eine der häufigsten Verwendungen des Touch-Befehls ist das Erstellen einer neuen leeren Datei.
Mit dem Touch-Befehl können Sie den Zugriff ändern, die Zeit von Dateien und Ordnern in Linux ändern und ändern. Sie können die Zeitstempel aktualisieren oder auf ein Datum in der Vergangenheit ändern.
Die Syntax für Touch-Befehle ist recht einfach:
touch [option] file
Was sind nochmal Dateizeitstempel in Linux?
Ich habe in einem früheren Artikel ausführlich über Zeitstempel in Linux geschrieben. Ich würde empfehlen, es für ein besseres und klareres Verständnis zu lesen. Zur schnellen Erinnerung liste ich die Zeitstempel hier auf:
- Zugriffszeit – letzter Zeitpunkt, zu dem auf eine Datei zugegriffen wurde
- Änderungszeit – letzter Zeitpunkt, zu dem eine Datei geändert wurde
- Änderungszeit – letzter Zeitpunkt, an dem Dateimetadaten (Dateiberechtigung, Eigentum usw.) geändert wurden
Sie können die Zeitstempel einer Datei mit dem stat-Befehl auf folgende Weise anzeigen:
stat abhi.txt
File: abhi.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11940163 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 14:12:24.476483367 +0530
Modify: 2018-09-02 14:12:24.476483367 +0530
Change: 2018-09-02 14:12:24.476483367 +0530
Birth: -
Der Stat-Befehl zeigt sogar die Inode-Nummer der Datei an.
9 Praktische Beispiele des Berührungsbefehls unter Linux
Sehen wir uns nun anhand einiger einfacher, aber nützlicher Beispiele an, wie der Touch-Befehl verwendet wird.
1. Erstellen Sie eine leere Datei
Wie ich bereits erwähnt habe, ist dies die häufigste Verwendung von Touch-Befehlen. Alles, was Sie tun müssen, ist, touch mit dem Dateinamen zu verwenden.
touch <filename>
Dadurch wird eine leere Datei erstellt, wenn die Datei nicht existiert.
touch empty_file
ls -l empty_file
-rw-r--r-- 1 abhishek abhishek 0 Sep 2 14:37 empty_file
Was aber, wenn die Datei bereits existiert? In diesem Fall werden alle drei Zeitstempel der Datei auf die aktuelle Zeit aktualisiert.
2. Erstellen Sie mehrere leere Dateien
Sie können Touch auch verwenden, um mehr als eine leere Datei zu erstellen. Geben Sie einfach die Namen der Dateien an, die Sie erstellen möchten.
touch <file1> <file2> <file3>
Wenn Sie denken, dass es ermüdend ist, alle Dateinamen zu schreiben, können Sie Dateinamen auf diese Weise automatisch generieren:
touch new-file-{1..10}.txt
Dadurch werden neue-Datei-1.txt, neue-Datei-2.txt bis neue-Datei-10.txt erstellt.
3. Vermeiden Sie es, eine Datei mit Touch zu erstellen, wenn sie nicht existiert
Touch aktualisiert die Zeitstempel der Eingabedatei, falls vorhanden, und erstellt eine leere Datei, wenn die Eingabedatei nicht vorhanden ist.
Aber was ist, wenn Sie nicht möchten, dass Touch eine neue leere Datei erstellt? Sie möchten, dass die Zeitstempel der Datei aktualisiert werden, aber wenn die Datei nicht existiert, sollte sie nicht erstellt werden.
In solchen Fällen können Sie den Touch-Befehl mit der Option -c verwenden:
touch -c <filename>
Denken Sie daran :Berühren erstellt eine neue leere Datei, wenn sie nicht existiert, andernfalls werden die Zeitstempel der vorhandenen Datei geändert. Sie können die Erstellung einer neuen Datei mit der Option -c stoppen.
4. Alle Zeitstempel einer Datei ändern
Wenn Sie eine vorhandene Datei berühren, ändert sich der Zugriff, die Änderung und die Uhrzeit dieser Datei.
Zum Beispiel habe ich diese Datei namens sherlock.txt mit den folgenden Zeitstempeln:
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-08-25 09:44:56.092937000 +0530
Modify: 2018-08-09 09:41:05.028309000 +0530
Change: 2018-08-25 09:44:56.096937182 +0530
Wenn ich bei diesem Befehl touch verwende, werden alle Zeitstempel auf die aktuellen Zeitstempel geändert.
touch sherlock.txt
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 15:22:47.017037942 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:22:47.017037942 +0530
Birth: -
Hinweis:Sie sollten sich nicht mit ctime (Zeit ändern) beschäftigen. Es ist eine Systemeigenschaft und kann/sollte nicht vom Benutzer kontrolliert werden. Ihr Fokus sollte auf der Zugriffs- und Änderungszeit liegen.
5. Nur Zugriffszeit der Datei aktualisieren
Möglicherweise möchten Sie nicht immer alle Zeitstempel einer Datei ändern. Wenn Sie nur die Zugriffszeit einer Datei ändern möchten, können Sie die Option -a mit touch verwenden.
touch -a sherlock.txt
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:29:08.796926093 +0530
Birth: -
6. Nur Änderungszeit der Datei aktualisieren
Wenn Sie nur die Änderungszeit einer Datei auf den aktuellen Zeitstempel aktualisieren möchten, verwenden Sie die Option -m des Touch-Befehls.
touch -m sherlock.txt
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:31:25.770866881 +0530
Change: 2018-09-02 15:31:25.770866881 +0530
Birth: -
7. Zeitstempel einer anderen Datei verwenden
Sie können auch die Zeitstempel einer anderen Datei mit der Option -r auf folgende Weise als Referenz verwenden:
touch -r <source_file> <target_file>
Dadurch wird die Zugriffs- und Änderungszeit der Zieldatei auf die Zugriffs- und Änderungszeit der Quelldatei eingestellt.
8. Legen Sie eine bestimmte Zugriffs- und Änderungszeit fest
Sie haben vielleicht bemerkt, dass in fast allen Fällen (mit Ausnahme der Referenzdatei) die Zeitstempel auf den aktuellen Zeitstempel geändert werden.
Daran sind Sie aber nicht gebunden. Mit Touch können Sie die Zugriffs- und Änderungszeit auf ein vergangenes oder zukünftiges Datum festlegen. Sie können die Option -t und einen Zeitstempel im folgenden Format verwenden:
[[CC]YY]MMDDhhmm[.ss]
- CC – Die ersten beiden Ziffern eines Jahres
- YY – Die zweiten beiden Ziffern eines Jahres
- MM – Monat des Jahres (01-12)
- DD – Tag des Monats (01-31)
- hh – Stunde des Tages (00-23)
- mm – Minute der Stunde (00-59)
- ss – Sekunden (00-59)
Im obigen Fall ist CC optional. Tatsächlich ist CCYY auch optional, in diesem Fall wird das aktuelle Jahr verwendet. Ebenso sind Sekunden ebenfalls optional, sie sind standardmäßig 00.
Lassen Sie mich Ihnen ein Beispiel zeigen, indem ich den Zeitstempel auf 12021301 ändere, d. h. 12. Monat, zweiter Tag, 13. Stunde und erste Minute des aktuellen Jahres:
touch -t 12021301 agatha.txt
stat agatha.txt
File: agatha.txt
Size: 457 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928279 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-12-02 13:01:00.000000000 +0530
Modify: 2018-12-02 13:01:00.000000000 +0530
Change: 2018-09-02 15:59:47.588680901 +0530
Birth: -
Wenn Sie versuchen, ein ungültiges Datum einzugeben, wird eine Fehlermeldung angezeigt. Sie werden auch feststellen, dass die Änderungszeit den aktuellen Zeitstempel verwendet, nicht dasselbe wie Zugriff und Änderung. Das liegt daran, dass es sich um eine Systemeigenschaft handelt.
9. Zeitstempel eines symbolischen Links ändern
Sie können den Touch-Befehl auch mit symbolischen Links verwenden. Sie müssen nur die Option -h verwenden, wenn Sie mit symbolischen Links arbeiten. Der Rest bleibt derselbe wie die regulären Dateien.
touch -h <symbolic_link>
Ich hoffe, Sie finden diese Touch-Befehlsbeispiele in Linux hilfreich. Wenn Sie Fragen oder Anregungen haben, lassen Sie es mich wissen.