Každý soubor v Linuxu je spojen s časovými razítky, které určují čas posledního přístupu, čas poslední úpravy a čas poslední změny.
Kdykoli vytvoříme nový soubor nebo upravíme existující soubor nebo jeho atributy, budou tato časová razítka automaticky aktualizována.
Dotykový příkaz se používá ke změně těchto časových razítek (čas přístupu, čas úpravy a čas změny souboru).
1. Vytvořte prázdný soubor pomocí dotyku
Pomocí dotykového příkazu můžete vytvořit prázdný soubor. Následující příklad vytvoří nový soubor s nulovým bajtem s názvem tgs.txt.
$ touch tgs.txt
Můžete také použít volbu -c, abyste se vyhnuli vytváření nových souborů. Pokud použijete volbu -c a soubor neexistuje, dotykem se soubor nevytvoří.
$ touch -c a.txt
Příkazy jako ls command a find používají tyto informace o časovém razítku pro výpis a hledání souborů.
Jedním dotykovým příkazem můžete také vytvořit více než 1 soubor. Následující příklad vytvoří 4 soubory pojmenované a, b, c a d.
$ touch a b c d
2. Změňte přístupový čas souboru pomocí -a
Čas přístupu k souboru můžeme změnit pomocí volby -a. Ve výchozím nastavení použije aktuální systémový čas a aktualizuje pole atime.
Před provedením dotykového příkazu:
$ stat tgs.txt File: `tgs.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2012-10-18 23:58:21.663514407 +0530 Modify: 2012-10-18 23:58:21.663514407 +0530 Change: 2012-10-18 23:58:21.663514407 +0530
$ touch -a tgs.txt
Po výše uvedeném dotykovém příkazu (Upozorňujeme, že doba přístupu se změnila):
$ stat tgs.txt File: `tgs.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2012-10-19 00:08:23.559514525 +0530 Modify: 2012-10-18 23:58:21.663514407 +0530 Change: 2012-10-19 00:08:23.559514525 +0530
3. Změňte čas úpravy souboru pomocí -m
Čas úpravy souboru můžete změnit pomocí volby -m.
$ touch -m *.o
Výše uvedenou metodu lze použít ke změně mtime všech souborů obj při použití nástroje make.
POZNÁMKA:Není možné změnit ctime pomocí dotykového příkazu
4. Explicitní nastavení času přístupu a modifikace pomocí -t a -d
Místo aktuálního časového razítka můžete čas explicitně určit pomocí voleb -t a -d.
Formát pro zadání -t je [[CC]YY]MMDDhhmm[.SS]
$ touch -t [[CC]YY]MMDDhhmm[.SS]
Následující text vysvětluje výše uvedený formát:
- CC – Určuje první dvě číslice roku
- YY – Určuje poslední dvě číslice roku. Pokud je hodnota YY mezi 70 a 99, předpokládá se, že hodnota číslic CC je 19. Pokud je hodnota YY mezi 00 a 37, předpokládá se, že hodnota číslic CC je 20. není možné nastavit datum po 18. lednu 2038.
- MM – Určuje měsíc
- DD – Určuje datum
- hh – Určuje hodinu
- mm – určuje minuty
- SS – Určuje sekundy
Například:
$ touch -a -m -t 203801181205.09 tgs.txt
Ověřte výše uvedenou změnu pomocí příkazu stat:
$ stat tgs.txt File: `tgs.txt' Size: 3 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2038-01-18 12:05:09.000000000 +0530 Modify: 2038-01-18 12:05:09.000000000 +0530 Change: 2012-10-19 00:40:58.763514502 +0530
Ke změně času můžete také použít řetězec
Další příklad:
$ touch -d "2012-10-19 12:12:12.000000000 +0530" tgs.txt
Pro vývojáře bude dotykový příkaz opravdu užitečný při práci s Makefiles
5. Zkopírujte časové razítko z jiného souboru pomocí -r
Můžete také vzít soubor jako referenci a aktualizovat čas pro ostatní soubory, takže oba soubory budou mít stejný čas.
Následující příklad dotykového příkazu aktualizuje časové razítko souboru a.txt časovým razítkem souboru tgs.txt.
$ touch a.txt -r tgs.txt