ファイルの変更または変更としてカウントされるものは何ですか?


回答:


9

名前を変更すると、変更時間が更新されます。

$ mkdir tmp
$ cd tmp

$ echo abc > a
$ stat a
  File: `a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 26h/38d Inode: 5038682     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000 /  zelda   Gid: ( 1000/   zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
 Birth: -

$ mv a b
$ stat b
  File: `b'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 26h/38d Inode: 5038682     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/  zelda)   Gid: ( 1000/   zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
 Birth: -

ファイルの内容を読み取ると、アクセス時間が更新されます。実際にファイルを更新するときに変更します(変更のために開くだけでは変更時間を変更できません)。


ファイルをコピーして貼り付けると、新しいファイルの「変更」時間が変更されますか?Ctrl + Xを使用して貼り付けると、「変更」時間が変更されますか?

1
コピーは、変更、アクセス、変更を含む新しいファイルを作成します(すべて同じ)。エディタで何かを貼り付ける(してから保存)(あなたが保存した後にのみ、もちろん、他の2つよりも後でタイムスタンプ付きの変更)3つのすべてを更新
ゼルダ

ファイルでCTRL + xを使用し、他の場所でCTRL + vを使用することを意味しました。

これは、コマンドラインツールcpとを使用してmvおりvi、編集に使用しています。他のエディター、またはデスクトップはタスクを異なる方法で処理し、より多くのタイムスタンプが更新される場合があります。
ゼルダ

例えばノーチラスは、アクセスして変更にCtrl + Xし、Ctrl + Vを使用して更新しない、唯一の変更は次のように、異なっているmv
ゼルダ

9

ファイルのmtimeに影響を与える変更は、ファイルのデータの変更です。つまり、ゼロ以外の量のバイトの書き込み、またはファイルを変更することになる切り捨てです。ファイルを作成すると、mtimeも現在の日付に設定されます。書き込み用にファイルを開いても、ファイルが作成または切り捨てられていないと仮定しても、mtimeには影響しません。

ファイルからの読み取り(ゼロ以外のバイト数が読み取られた場合)またはファイルの実行により、atimeが現在の時刻に設定されます。読み取り用にファイルを開くだけでは、atimeには影響しません。Linuxでは、これをされ、今ほとんどの状況では、デフォルトでは無効。atime一方、マウントオプションのリストアは、更新をatimeのnoatimeマウントオプションは、それらを完全に無効にします。

プログラムは、ファイルのmtimeとatimeを変更できます。これを行う基本的なコマンドはtouchです。一部のファイルコピープログラムは、コピーを元のファイルと同じmtimeに設定します(例:cp -pまたは)rsync -t

ファイルのctimeに影響する変更は、ファイルのメタデータの変更です:許可、所有者、時間、リンク数など。ファイルの名前を変更すると、ctimeも更新されます。ファイルデータの変更もctimeに影響しますが、ファイルからの読み取りは、atimeを変更してもctimeを変更しません。ctimeを現在の時刻に設定する以外の方法で変更することは不可能です(ルートにも制約がありますが、ルートは最初にシステム時刻を変更するか、ファイルシステムを含むパーティションに直接アクセスすることで間接的にctimeを設定できます)。


1

他の回答で言及されていない追加の経験的観察:

書き込み用にファイルを開くと、ファイルO_TRUNCが元々空だった場合でもmtime が変更されます。

これは、少なくともLinux 3.10のext3に当てはまるようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.