Úvod
touch
primární funkcí příkazu je upravit časové razítko. Obyčejně se nástroj používá pro vytváření souborů, i když to není jeho primární funkce. Terminálový program může změnit modifikaci a čas přístupu pro daný soubor. touch
příkaz vytvoří soubor pouze v případě, že soubor ještě neexistuje.
Tento výukový program vysvětluje, jak používat touch
příkaz se základními a pokročilými možnostmi.
Předpoklady
- Systém se systémem Linux.
- Přístup k příkazovému řádku/terminálu.
- Základní terminálové příkazy, jako je
ls
.
dotkněte se Syntaxe příkazu
Základní syntaxe pro touch
příkaz je:
touch <options> <file or directory name>
Dotykový nástroj funguje bez jakýchkoli možností nebo s více možnostmi pro pokročilé dotazy. Některé možnosti mají dlouhý a krátký formát. Pokud možnost vyžaduje další informace, pak jsou údaje povinné pro dlouhé i krátké formuláře.
stiskněte Možnosti příkazu
Níže je referenční tabulka pro všechny dostupné touch
možnosti příkazu:
Možnost | Popis |
---|---|
-a | Změní dobu přístupu. |
-c --no-create | Vyhýbá se vytváření nového souboru. |
-d=<string> --date=<string> | Změní časové razítko pomocí řetězce data. |
-f | Žádný účinek. Ve starších BSD si tato možnost vynutí změny. |
-h --no-dereference | Změní časové razítko symbolického odkazu. |
-m | Změní čas úpravy. |
-r=<file> --reference=<file> | Změní časové razítko na časové razítko odkazovaného souboru. |
-t <stamp> | Upravuje časové razítko, kde razítko je ve formátu data/času. |
--help | Otevře nabídku nápovědy. |
-v --version | Vytiskne verzi programu. |
Příklady dotyku Linuxu
Při práci se soubory v Linuxu je třeba mít na paměti tři časová razítka:
1. Čas přístupu nebo atime změní, když příkaz čte obsah souboru, jako je grep nebo cat. Parametr ls -lu
příkaz zobrazí atime souborů.
2. Změnit čas nebo ctime se změní, když se změní vlastnosti souboru, jako je přejmenování souborů, úprava oprávnění k souboru nebo přesun souboru. Parametr ls -lc
příkaz zobrazí ctime pro soubory.
3. Čas úpravy nebo mtime změní, když se změní obsah souboru. Parametr ls -l
příkaz zobrazí mtime pro soubory.
Všechny příklady níže jsou spuštěny z terminálu a ukazují, jak používat Linux touch
příkaz s různými možnostmi a jaký výstup lze očekávat.
Vytvořit soubor
Nejjednodušší způsob použití touch
příkaz nemá žádné možnosti:
touch <filename>
Pokud soubor neexistuje, klepnutím jej vytvoříte. Chcete-li například vytvořit soubor s názvem test , spustit:
touch test
Vypište obsah adresáře, abyste viděli soubor pomocí příkazu ls.
Pokud soubor již existuje, dotykem změníte časové razítko na aktuální čas.
Obsah souboru a oprávnění zůstávají nezměněny.
Vytvořit více souborů
touch
příkaz může také vytvořit více souborů. Chcete-li tak učinit, uveďte názvy souborů oddělené mezerami:
touch <filename> <filename>
Například:
touch test1 test2
Užitečný způsob použití touch
je vytvářet velké dávky souborů. Chcete-li to provést, přidejte složené závorky a kromě názvu souboru uveďte první a poslední prvek:
touch <filename{<start>..<finish>}>
Chcete-li například vytvořit deset souborů s připojeným číslováním, spusťte:
touch test{1..10}
Příkaz pracuje i s písmeny. Například:
touch test_{a..j}
Důležité :Příkaz nemůže kombinovat čísla a písmena.
Nastavit konkrétní časové razítko
Použijte touch
příkaz pro nastavení konkrétního časového razítka pro existující soubor, například:
touch -t <timestamp> <filename>
Formát časového razítka se řídí specifickým vzorem:
[[CC]YY]MMDDhhmm[.ss]
CC
- první dvě číslice pro rokYY
- poslední dvě číslice pro rokMM
- měsícDD
- denhh
- hodinamm
- minutyss
- sekund
Číslice v hranatých závorkách jsou volitelné. Při použití dvoumístného formátu roku nastavte YY
na jakékoli číslo mezi 0-68 automaticky předpokládá CC
je 20, zatímco 69-99 předpokládá CC
je 19.
Chcete-li například změnit časové razítko pro soubor s názvem test do půlnoci 1. ledna 1999 , spustit:
touch -t 199901010000 test
Použijte --full-time
možnost s ls
zobrazíte podrobnosti o časovém razítku.
Nastavit časové razítko souboru pomocí řetězce data
touch
příkaz používá -d
možnost nastavit časové razítko pomocí řetězce data. Syntaxe je:
touch -d <string> <filename>
Řetězec data je flexibilní formát času a přijímá mnoho různých textových forem čitelných pro člověka. Některé příklady zahrnují:
- Data kalendáře, například
19 August 2020
. - Čas dne, například
9:27pm
nebo8:02am
. - Dny v týdnu, jako je
Sunday
,Monday
atd. - Relativní čas, například
5 years ago
,yesterday
,next tuesday
atd.
Změňte například časové razítko pomocí -d
možnost tomorrow
:
touch -d tomorrow test
Chcete-li zobrazit úplný seznam možných možností zadávání řetězců, navštivte dokumentaci formátů vstupu data GNU.
Změnit přístupový čas na aktuální
Použijte -a
pro změnu času přístupu k souboru. Obecná syntaxe je:
touch -a <filename>
Chcete-li například zobrazit čas přístupu k souboru, spusťte:
ls -lu
Dále změňte přístupový čas pro soubor s názvem test s:
touch -a test
Nakonec zobrazte změněný čas spuštěním:
ls -lu
Čas přístupu se změní na aktuální časové razítko.
Explicitně změnit dobu přístupu
Upravte čas přístupu ke konkrétnímu časovému razítku kombinací -a
a -t
možnosti:
touch -at <timestamp> <filename>
Před změnou zkontrolujte dobu přístupu k souborům:
ls -lu
Změňte čas přístupu k souboru test do půlnoci 1. ledna 1999 přidáním časového razítka:
touch -at 9901010000 test
Nakonec zkontrolujte dobu přístupu po změně:
ls -lu
Po spuštění příkazu se přístupová doba změní na hodnotu nastavenou pomocí -t
tag.
Změnit čas úpravy na aktuální
touch
příkaz nabízí možnost změnit čas úpravy. Základní syntaxe je:
touch -m <filename>
Například před změnou časového razítka zkontrolujte mtime souboru:
ls -l
Dále změňte čas úpravy testovacího souboru:
touch -m test
Nakonec zkontrolujte mtime po změně:
ls -l
-m
volba změní ve výchozím nastavení čas úpravy na aktuální časové razítko.
Explicitně změnit čas úpravy
Zkombinujte -m
možnost s -t
explicitně uvést časové razítko změny. Obecná syntaxe je:
touch -mt <timestamp> <filename>
Před změnou zkontrolujte mtime souboru:
ls -l
Změňte čas úpravy na půlnoc 1. ledna 1999 , spuštěním:
touch -mt 9901010000 test
Nakonec znovu zkontrolujte čas úpravy:
ls -l
Přidání -t
volba aktualizuje čas úpravy na konkrétní hodnotu.
Změňte čas modifikace i dobu přístupu
Dotyková utilita umožňuje změnu úpravy a doby přístupu jediným příkazem. Chcete-li to provést, spusťte:
touch -am <filename>
Než změníte atime a mtime, zkontrolujte je pomocí:
ls -lu
ls -l
Dále změňte oba časy pro test soubor do aktuálního časového razítka:
touch -am test
Zkontrolujte atime a mtime po změně:
ls -lu
ls -l
Kombinované možnosti se změní oba časy najednou na aktuální čas. Kombinujte dále s -t
tag pro uvedení explicitního časového razítka.
Vyhněte se vytváření nového souboru
Ve výchozím nastavení dotyk generuje nový soubor, pokud neexistuje. Některé situace však vyžadují přepsání této funkce. Přidejte -c
možnost vyhnout se vytváření nového souboru při vyvolání touch
příkaz:
touch -c <filename>
Zkuste například spustit touch
pomocí -c
možnost s neexistujícím souborem:
touch -c new_test
Vypište obsah adresáře, abyste se ujistili, že tam soubor není:
ls -l
Na druhou stranu, pokud soubor existuje, touch
příkaz provede dodané operace se stávajícím souborem jako obvykle.
Nastavit časové razítko pomocí referenčního souboru
touch
nabízí užitečnou možnost změnit časové razítko souboru na základě časového razítka jiného souboru.
Chcete-li provést takovou změnu, spusťte:
touch -r <reference file> <file>
Vytvořte například nový soubor a odkazujte na časové razítko existujícího testu soubor:
touch -r test new_test
Zkontrolujte časové razítko pro oba soubory pomocí:
ls -l
new_test soubor zdědí časové razítko z testu soubor.
Nastavit časové razítko pomocí symbolického odkazu
touch
umožňuje změnit časové razítko pro symbolické odkazy bez změny časového razítka odkazovaného souboru. Použijte -h
možnost úpravy času pro symbolický odkaz:
touch -h <filename>
Před provedením jakýchkoli změn například zkontrolujte čas u existujícího symbolického odkazu:
ls -l
Změňte časové razítko pro symbolický odkaz na aktuální čas:
touch -h link
Nakonec znovu zkontrolujte časové razítko a potvrďte změnu:
ls -l
Bez -h
touch
příkaz pouze změní test časové razítko souboru.
Časové razítko symbolického odkazu zůstává v tomto případě nezměněno.