Linuxでファイルの属性情報を表示する!(stat)

Linuxでファイルの属性情報を表示します。

ファイルの属性情報を表示する!

ファイルを作成して、statコマンドで、ファイルの属性情報を表示します。「ls -l」より詳細な情報が表示されます。

$ touch sample_stat.txt
$ ls -l sample_stat.txt 
-rw-rw-r--. 1 usradmin usradmin 0 Feb 16 20:32 sample_stat.txt
$ stat sample_stat.txt 
  File: sample_stat.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 2728583     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/usradmin)   Gid: ( 1000/usradmin)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-02-16 20:32:09.437981742 +0900
Modify: 2023-02-16 20:32:09.437981742 +0900
Change: 2023-02-16 20:32:09.437981742 +0900
 Birth: -

コマンドでファイルを更新する!

コマンドでファイルを更新します。ModifyとChangeが更新されましたが、Accessは変更されませんでした。

$ echo "Hello World!" > sample_stat.txt
$ ls -l sample_stat.txt 
-rw-rw-r--. 1 usradmin usradmin 13 Feb 16 20:35 sample_stat.txt
$ stat sample_stat.txt 
  File: sample_stat.txt
  Size: 13        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 2728583     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/usradmin)   Gid: ( 1000/usradmin)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-02-16 20:32:09.437981742 +0900
Modify: 2023-02-16 20:35:47.275964594 +0900
Change: 2023-02-16 20:35:47.275964594 +0900
 Birth: -

ファイルを参照する!

catコマンドでファイルを参照します。今度は、Accessのみ更新されます。

$ cat sample_stat.txt 
Hello World!
$ ls -l sample_stat.txt 
-rw-rw-r--. 1 usradmin usradmin 13 Feb 16 20:35 sample_stat.txt
$ stat sample_stat.txt 
  File: sample_stat.txt
  Size: 13        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 2728583     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/usradmin)   Gid: ( 1000/usradmin)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-02-16 20:38:07.244953576 +0900
Modify: 2023-02-16 20:35:47.275964594 +0900
Change: 2023-02-16 20:35:47.275964594 +0900
 Birth: -

ファイルの権限情報を変更する!

ファイルの権限情報を変更します。Changeのみが更新されます。

$ chmod 660 sample_stat.txt 
$ ls -l sample_stat.txt 
-rw-rw----. 1 usradmin usradmin 13 Feb 16 20:35 sample_stat.txt
$ stat sample_stat.txt 
  File: sample_stat.txt
  Size: 13        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 2728583     Links: 1
Access: (0660/-rw-rw----)  Uid: ( 1000/usradmin)   Gid: ( 1000/usradmin)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-02-16 20:38:07.244953576 +0900
Modify: 2023-02-16 20:35:47.275964594 +0900
Change: 2023-02-16 20:40:45.156941145 +0900
 Birth: -

touchコマンドでファイルの更新日時を変更する!

touchコマンドでファイルの更新日時を変更します。AccessとModifyがtouchコマンドで指定した日時になりますが、Changeはtouchコマンドを実行した日時になります。

$ touch -t 202201010000.00 sample_stat.txt 
$ ls -l sample_stat.txt 
-rw-rw----. 1 usradmin usradmin 13 Jan  1  2022 sample_stat.txt
$ stat sample_stat.txt 
  File: sample_stat.txt
  Size: 13        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 2728583     Links: 1
Access: (0660/-rw-rw----)  Uid: ( 1000/usradmin)   Gid: ( 1000/usradmin)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2022-01-01 00:00:00.000000000 +0900
Modify: 2022-01-01 00:00:00.000000000 +0900
Change: 2023-02-16 20:43:29.474928210 +0900
 Birth: -

おわりに

ファイルの更新日時は、LinuxではAccess、Modify、Changeの3つの情報を持っています。「ls -l」では、Modifyが表示されているようです。

関連記事

関連書籍(Amazon)