GNU/Linux >> Znalost Linux >  >> Linux

Jak upravit soubor bez změny jeho časových razítek v Linuxu

Jak možná víte, časová razítka „čas přístupu“ a „čas úpravy“ souboru se po úpravě nebo úpravě souboru změní na aktuální čas. Někdy možná budete chtít zachovat stará časová razítka z jakéhokoli důvodu i po úpravách nebo úpravách souborů. Tento stručný průvodce vysvětluje, jak upravit soubor bez změny jeho časových razítek v Linuxu.

Pokud toho o časových razítkách souborů v Linuxu moc nevíte, podívejte se do následujícího průvodce.

  • Časová razítka souborů Linux s příklady

Upravit soubor beze změny jeho časových razítek v Linuxu

Časová razítka souboru lze aktualizovat pomocí touch příkaz. Časová razítka se také aktualizují, když ručně přidáme obsah do souboru nebo z něj odstraníme data. Pokud chcete změnit obsah souborů bez změny jejich časových razítek, neexistuje žádný přímý způsob, jak to udělat. Ale je to možné!

Můžeme použít jeden z touch možnost příkazu -r (odkaz) pro zachování časových razítek souboru po jeho úpravě nebo úpravě. -r volba se používá k nastavení časových značek jednoho souboru na hodnoty časových značek jiného.

Mám textový soubor s názvem ostechnix.txt . Podívejme se na časová razítka tohoto souboru pomocí stat příkaz:

$ stat ostechnix.txt 
  File: ostechnix.txt
  Size: 38        	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 4351679     Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1000/      sk)   Gid: ( 1000/      sk)
Access: 2020-11-12 19:47:55.992788870 +0530
Modify: 2020-11-12 19:47:55.992788870 +0530
Change: 2020-11-12 19:47:55.992788870 +0530
 Birth: -

Jak již bylo řečeno, pokud změníme obsah nebo metadata tohoto souboru, změní se také časová razítka.

Nyní vytvořte nový prázdný soubor, například ostechnix.timestamp , se stejnými časovými razítky jako ostechnix.txt pomocí touch příkaz:

$ touch -r ostechnix.txt ostechnix.timestamp

Zkontrolujte časová razítka nového souboru:

$ stat ostechnix.timestamp 
  File: ostechnix.timestamp
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 4328645     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/      sk)   Gid: ( 1000/      sk)
Access: 2020-11-12 19:47:55.992788870 +0530
Modify: 2020-11-12 19:47:55.992788870 +0530
Change: 2020-11-12 19:48:48.934235300 +0530
 Birth: -

Vidět? Atime obou souborů a mtime časová razítka jsou stejná!

Nyní proveďte změny v hlavním souboru, tj. ostechnix.txt . Jak jste uhodli, časová razítka hlavního souboru se změní.

Nakonec zkopírujte časová razítka nového souboru, tj. ostechnix.timestamp do hlavního souboru:

$ touch -r ostechnix.timestamp ostechnix.txt

Nyní má hlavní soubor svá stará časová razítka, než byl upraven/změněn.

Upozorňujeme, že časová razítka času změny (ctime) nemůžeme zachovat. Vždy se aktualizuje na aktuální čas.

TL;DR

Vytvořte nový soubor se stejnými časovými razítky jako hlavní soubor pomocí touch proveďte změny v hlavním souboru a nastavte časová razítka nového souboru na hlavní soubor pomocí -r možnost.

Doufám, že to pomůže.


Linux
  1. Přesouvání souborů na Linuxu bez mv

  2. Jak spravovat možnosti souborů Linux

  3. Jak najít soubor v Linuxu

  1. Jak vytvořit swap v Linuxu

  2. Linux – Jak obnovit 70-persistent-net.rules bez restartu?

  3. Jak přejmenovat soubor v Linuxu?

  1. Jak přesunout soubor v Linuxu

  2. Jak vytvořit odkládací soubor v Linuxu

  3. Jak upravit soubor Excel (xlsx) pomocí linuxového shellu