GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでタイムスタンプを変更せずにファイルを編集する方法

ご存知かもしれませんが、ファイルの「アクセス時間」と「変更時間」のタイムスタンプは、ファイルが編集または変更された後、現在の時間に変更されます。ファイルを編集または変更した後でも、何らかの理由で古いタイムスタンプを保持したい場合があります。この簡単なガイドでは、Linuxでタイムスタンプを変更せずにファイルを編集する方法について説明します。

Linuxファイルのタイムスタンプについてよく知らない場合は、次のガイドを参照してください。

  • 例で説明されているLinuxファイルのタイムスタンプ

Linuxでタイムスタンプを変更せずにファイルを編集する

ファイルのタイムスタンプは、touchを使用して更新できます 指図。タイムスタンプは、ファイルにコンテンツを手動で追加したり、ファイルからデータを削除したりするときにも更新されます。タイムスタンプを変更せずにファイルの内容を変更したい場合、それを直接行う方法はありません。しかし、それは可能です!

touchの1つを使用できます コマンドのオプション-r (参照)ファイルを編集または変更した後、ファイルのタイムスタンプを保持します。 -r オプションは、あるファイルのタイムスタンプを別のファイルのタイムスタンプ値に設定するために使用されます。

ostechnix.txtという名前のテキストファイルがあります 。このファイルのタイムスタンプをstatで見てみましょう。 コマンド:

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

すでに述べたように、このファイルの内容またはメタデータを変更すると、タイムスタンプも変更されます。

次に、ostechnix.timestampなどの新しい空のファイルを作成します。 、ostechnix.txtと同じタイムスタンプ touchを使用したファイル コマンド:

$ touch -r ostechnix.txt ostechnix.timestamp

新しいファイルのタイムスタンプを確認します:

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

見る?両方のファイルのatime およびmtime タイムスタンプは同じです!

次に、メインファイル(ostechnix.txt)に変更を加えます。 。ご想像のとおり、メインファイルのタイムスタンプは変更されます。

最後に、新しいファイルのタイムスタンプをコピーします。つまり、ostechnix.timestamp メインファイルへ:

$ touch -r ostechnix.timestamp ostechnix.txt

これで、メインファイルには編集/変更される前の古いタイムスタンプがあります。

変更時刻(ctime)のタイムスタンプは保持できないことに注意してください。常に現在の時刻に更新されます。

TL; DR

touchを使用して、メインファイルと同じタイムスタンプで新しいファイルを作成します コマンドを実行し、メインファイルで変更を行い、-rを使用して新しいファイルのタイムスタンプをメインファイルに設定します。 オプション。

これがお役に立てば幸いです。


Linux
  1. Linuxファイル機能を管理する方法

  2. Linuxでファイルを見つける方法

  3. Linuxでファイルの名前を変更するにはどうすればよいですか?

  1. Linuxでmvなしでファイルを移動する

  2. Linuxでスワップを作成する方法

  3. Linuxでスワップファイルを作成する方法

  1. Linuxでファイルを移動する方法

  2. Linux –再起動せずに70-persistent-net.rulesを再生成する方法は?

  3. Linux シェルを使用して Excel ファイル (xlsx) を編集する方法