1,961 瀏覽數

Linux – stat

# stat [option] file-name 顯示檔案詳細的狀態

先來說說 Linux 會記錄檔案的三種時間 atime / mtime / ctime

[root@benjr ~]# stat test
  File: ‘test’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d      Inode: 269772      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-06 18:38:50.664135013 +0800
Modify: 2016-06-06 18:38:50.664135013 +0800
Change: 2016-06-06 18:38:50.664135013 +0800
 Birth: -
  • atime(Access): time of last access
    這裡記錄著上一次最後存取這個檔案的時間,只要這檔案被存取過這時間就會被更新,如果這檔案是可執行檔在執行後這時間也會被改變.也可以透過 ls -lu 來看 atime

    [root@benjr ~]# cat test
    [root@benjr ~]# stat test
      File: ‘test’
      Size: 0               Blocks: 0          IO Block: 4096   regular empty file
    Device: 801h/2049d      Inode: 269772      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-07-26 09:33:42.795224480 +0800
    Modify: 2016-06-06 18:38:50.664135013 +0800
    Change: 2016-06-06 18:38:50.664135013 +0800
     Birth: -
    
  • mtime(Modify): time of last modification
    紀錄上一次檔案被更改的時間,只要檔案內容被修改過 mtime 的會被更新. 可以透過 ls -l 來看 mtime
  • ctime(Change): time of last status change
    只要是檔案或是目錄的 inode 被改變(owner, permissions, 等.)這時間就會被更新.還有當檔案被更新時這 ctime 也會被更新. dump 的備份指令就是透過 ctime 來看需不需要將這檔案做備份為依據. 可以透過 ls -lc 來看 ctime

    [root@benjr ~]# echo test >> test
    [root@benjr ~]# stat test
      File: ‘test’
      Size: 5               Blocks: 8          IO Block: 4096   regular file
    Device: 801h/2049d      Inode: 269772      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-07-26 09:33:42.795224480 +0800
    Modify: 2016-07-26 09:34:12.812208000 +0800
    Change: 2016-07-26 09:34:12.812208000 +0800
     Birth: -
    

發表迴響