linux命令系列 stat & touch

1. stat - display file or file system statusnode

stat命令主要用於顯示文件或文件系統的狀態,詳細信息linux

事實上,stat命令顯示的是文件的I節點信息。Linux文件系統以塊爲單位存儲信息,爲了找到某個文件所在存儲空間的位置,用I節點對每一個文件進行索引數據結構

所謂的I節點,是文件系統管理的一個數據結構,是一個64字節長的表,包含了描述文件所必要的所有信息,其中包含了文件的大小,類型,存取權限,文件的全部者spa

[root@vnode33 ~]# touch a
[root@vnode33 ~]# stat a
  File: 'a'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:05:45.776000000 +0800
Modify: 2018-11-30 09:05:45.776000000 +0800
Change: 2018-11-30 09:05:45.776000000 +0800
 Birth: -

爲文件a添加一些內容再次使用stat:code

[root@vnode33 ~]# echo 123 > a
[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:05:45.776000000 +0800
Modify: 2018-11-30 09:08:24.531000000 +0800
Change: 2018-11-30 09:08:24.531000000 +0800
 Birth: -

               注:access 表示最後一次訪問(僅僅是訪問,沒有改動)文件的時間orm

                     modify 表示最後一次修改文件的時間blog

                     change 表示最後一次對文件屬性改變的時間,包括權限,大小,屬性等等索引

stat命令經常使用的選項:io

-L, --dereference  # 顯示符號連接
              follow links   

-f, --file-system  # 不顯示文件自己的信息,顯示文件所在文件系統的信息
              display file system status instead of file status

-t, --terse  # 簡潔模式,只顯示摘要信息
              print the information in terse form

 

2. touch - change file timestampsform

咱們可能知道在linux下運行touch命令能夠建立一個空文件,其實你要知道touch命令的主要功能並非爲了建立一個空文件哦。

什麼是touch命令?

linux系統下每一個文件都附有時間戳(timestamp),這個時間戳包括訪問時間和修改時間。而touch命令主要就是用來修改文件的訪問時間和修改時間。

最簡單的使用touch命令。只須要鍵入touch filename:

[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:05:45.776000000 +0800
Modify: 2018-11-30 09:08:24.531000000 +0800
Change: 2018-11-30 09:08:24.531000000 +0800
 Birth: -
[root@vnode33 ~]# touch a 
[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:53:17.929000000 +0800
Modify: 2018-11-30 09:53:17.929000000 +0800
Change: 2018-11-30 09:53:17.929000000 +0800
 Birth: -

對文件a使用touch命令以後,三個時間戳都修改了

若是咱們要只改變訪問時間,咱們須要使用-a選項:

[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:53:17.929000000 +0800
Modify: 2018-11-30 09:53:17.929000000 +0800
Change: 2018-11-30 09:53:17.929000000 +0800
 Birth: -
[root@vnode33 ~]# touch -a a
[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:55:35.989000000 +0800
Modify: 2018-11-30 09:53:17.929000000 +0800
Change: 2018-11-30 09:55:35.989000000 +0800
 Birth: -

 

若是咱們只但願修改「Modify」時間戳,能夠使用-m選項:

[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:55:35.989000000 +0800
Modify: 2018-11-30 09:53:17.929000000 +0800
Change: 2018-11-30 09:55:35.989000000 +0800
 Birth: -
[root@vnode33 ~]# touch -m a
[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-11-30 09:55:35.989000000 +0800
Modify: 2018-11-30 09:57:45.098000000 +0800
Change: 2018-11-30 09:57:45.098000000 +0800
 Birth: -

 

使用-t選項改成自定義時間戳:

-t STAMP
              use [[CC]YY]MMDDhhmm[.ss] instead of current time
[root@vnode33 ~]# touch -t 201010101010 a
[root@vnode33 ~]# stat a
  File: 'a'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 18742283    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2010-10-10 10:10:00.000000000 +0800
Modify: 2010-10-10 10:10:00.000000000 +0800
Change: 2018-11-30 10:00:37.039000000 +0800
 Birth: -
相關文章
相關標籤/搜索