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)