GNU/Linux >> Znalost Linux >  >> Linux

9 Užitečné příklady Touch Command v Linuxu

Dotykový příkaz v Linuxu

Dotykový příkaz v Linuxu se používá pro změnu časových razítek souborů, avšak jedno z nejběžnějších použití dotykového příkazu zahrnuje vytvoření nového prázdného souboru.

Pomocí dotykového příkazu můžete změnit přístup, upravit a změnit čas souborů a složek v Linuxu. Časová razítka můžete aktualizovat nebo je upravit na datum v minulosti.

Syntaxe dotykového příkazu je poměrně jednoduchá:

touch [option] file

Co jsou časová razítka souborů v Linuxu?

O časových razítkách v Linuxu jsem podrobně psal v dřívějším článku. Doporučuji přečíst pro lepší a jasnější pochopení. Pro rychlé připomenutí uvedu seznam časových razítek zde:

  • čas přístupu – čas posledního přístupu k souboru
  • čas úpravy – čas poslední úpravy souboru
  • čas změny – čas poslední změny metadat souboru (oprávnění k souboru, vlastnictví atd.)

Časová razítka souboru můžete zobrazit pomocí příkazu stat následujícím způsobem:

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: -

Příkaz Stat dokonce zobrazuje číslo inodu souboru.

9 Praktické příklady dotykového příkazu v Linuxu

Nyní se podívejme, jak používat dotykový příkaz, na několika jednoduchých, ale užitečných příkladech.

1. Vytvořte prázdný  soubor

Jak jsem již zmínil, toto je nejčastější použití dotykového příkazu. Jediné, co musíte udělat, je použít touch s názvem souboru.

touch <filename>

Pokud soubor neexistuje, vytvoří se prázdný soubor.

touch empty_file
ls -l empty_file 
-rw-r--r-- 1 abhishek abhishek 0 Sep  2 14:37 empty_file

Ale co když soubor již existuje? V takovém případě aktualizuje všechna tři časová razítka souboru na aktuální čas.

2. Vytvořte více prázdných souborů

Pomocí dotyku můžete také vytvořit více než jeden prázdný soubor. Stačí zadat názvy souborů, které chcete vytvořit.

touch <file1> <file2> <file3>

Pokud si myslíte, že je únavné psát všechny názvy souborů, můžete automaticky generovat názvy souborů tímto způsobem:

touch new-file-{1..10}.txt

Tím se vytvoří nový-soubor-1.txt, nový-soubor-2.txt až nový-soubor-10.txt.

3. Vyhněte se vytváření souboru dotykem, pokud neexistuje

Touch aktualizuje časová razítka vstupního souboru, pokud existuje, a vytvoří prázdný soubor, pokud vstupní soubor neexistuje.

Ale co když nechcete dotykem vytvořit nový prázdný soubor? Chcete, aby aktualizoval časová razítka souboru, ale pokud soubor neexistuje, neměl by být vytvořen.

V takových případech můžete použít dotykový příkaz s volbou -c:

touch -c <filename>
Pamatujte si :Dotykem vytvoříte nový prázdný soubor, pokud neexistuje, jinak upraví časová razítka existujícího souboru. Vytváření nového souboru můžete zastavit volbou -c.

4. Změnit všechna časová razítka souboru

Pokud použijete dotyk na existující soubor, změní se přístup, upraví a změní čas tohoto souboru.

Mám například tento soubor s názvem sherlock.txt s následujícími časovými razítky:

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

Pokud na tento příkaz použiji dotyk, všechna časová razítka se změní na aktuální časová razítka.

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: -

Poznámka:Neměli byste se obtěžovat s ctime (čas změny). Je to vlastnost systému a uživatel ji nemůže/neměl ovládat. Měli byste se zaměřit na přístup a úpravu času.

5. Aktualizovat pouze přístupový čas souboru

Možná nebudete vždy chtít změnit všechna časová razítka souboru. Pokud chcete pouze změnit dobu přístupu k souboru, můžete dotykem použít volbu -a.

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. Aktualizovat pouze změnit čas souboru

Pokud chcete pouze aktualizovat čas úpravy souboru na aktuální časové razítko, použijte volbu -m příkazu touch.

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. Použijte časová razítka jiného souboru

Časová razítka jiného souboru můžete také použít jako referenci s volbou -r následujícím způsobem:

touch -r <source_file> <target_file>

Tím nastavíte čas přístupu a úpravy cílového souboru stejně jako čas přístupu a úpravy zdrojového souboru.

8. Nastavte konkrétní přístup a čas úprav

Možná jste si všimli, že téměř ve všech případech (kromě referenčního souboru) se časová razítka změní na aktuální.

S tím ale nejste vázáni. Dotyk umožňuje nastavit přístup a čas úprav na minulé nebo budoucí datum. Můžete použít volbu -t a časové razítko v následujícím formátu:

[[CC]YY]MMDDhhmm[.ss]

  • CC – první dvě číslice roku
  • YY – druhé dvě číslice roku
  • MM – měsíc v roce (01-12)
  • DD – den v měsíci (01-31)
  • hh – hodina dne (00-23)
  • mm – minuta v hodině (00-59)
  • ss – sekundy (00-59)

Ve výše uvedeném případě je CC volitelná. Ve skutečnosti je CCYY také volitelná, v takovém případě bude trvat aktuální rok. Podobně jsou volitelné také sekundy, výchozí je 00.

Dovolte mi ukázat vám příklad změnou časového razítka na 12021301, tj. 12. měsíc, druhý den, 13. hodina a první minuta aktuálního roku:

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: -

Pokud se pokusíte zadat neplatné datum, zobrazí se chyba. Také si všimnete, že čas změny používá aktuální časové razítko, nikoli totéž jako přístup a úpravy. Je to proto, že je to vlastnost systému.

Můžete také použít dotykový příkaz se symbolickými odkazy. Při práci se symbolickými odkazy musíte použít volbu -h. Zbytek zůstává stejný jako u běžných souborů.

touch -h <symbolic_link>

Doufám, že vám tyto příklady dotykových příkazů v Linuxu budou užitečné. Pokud máte nějaké dotazy nebo návrhy, dejte mi vědět.


Linux
  1. 12 Užitečné příklady příkazů Wget v Linuxu

  2. V příkladech příkazů v Linuxu

  3. soubor Příklady příkazů v Linuxu

  1. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  2. Příkaz mv v Linuxu:7 základních příkladů

  3. 9 Užitečné příklady příkazu Split v Linuxu

  1. 8 Příklady příkazů hlavy v Linuxu

  2. 14 Užitečné příklady příkazů „cat“ v Linuxu

  3. dotykové příklady příkazů v systému Linux