天天看點

linux ctime 時間戳,關于stat指令和時間戳

上篇文章我們介紹過stat指令,當時隻是簡單的提了提,這裡我們詳細講解下關于stat和時間戳

一、關于時間戳

每一個檔案都有3中時間(稱為時間戳timestamps),對這3種時間,很多時候容易混淆不清,是以 這裡要說明下:

Access time(atime):是指取用檔案的時間,所謂取用,常見的操作有:使用編輯器檢視檔案内容,使用cat指令顯示檔案内容,使用cp指令把該檔案(即來源檔案)複制成其他檔案,或者在這個檔案上運用grep sed more less tail head 等指令,凡是讀取而不修改檔案的操作,均衡改變檔案的Access time.

Modify time(mtime):是指修改檔案内容的時間,隻要檔案内容有改動(如使用轉向輸出或轉向附加的方式)或存盤的操作,就會改變檔案的Modify time,平常我們使用ls –l檢視檔案時,顯示的時間就是Modify time

Change time(ctime):是指檔案屬性或檔案位置改動的時間,如使用chmod,chown,mv指令集使用ln做檔案的硬是連接配接,就會改變檔案的Change time.

Note:

如果修改檔案(使用編輯器存盤或使用) >>轉向操作),則Modify time和Change time

會同步更新成寫入的時間,但Access time不變。

如果執行touch檔案,則3中時間全部改變

使用ln –s做檔案的軟式連接配接,會改變檔案的取用時間

使用ls –la檢視一般檔案,不會更改這三種時間,但如果這個檔案時符号連結檔案,則會改變取用的時間(Access time)

關于時間戳的使用,在系統運維中,時間戳是至關重要的,尤其是配合find指令使用更是大大簡化了我們的工作。有關find的用法,我們在下一個小節中将詳細講解。

二、關于stat指令

Stat是擷取關于檔案的額外資訊,獲得兩種資訊:

1、 檔案系統

2、 檔案

基本用法:

取得檔案系統屬性

Stat –f /dev/sda1

-f :表示取用的是檔案系統(分區)而不是檔案

取得檔案屬性

Stat filename

Stat 基本文法格式:

Stat –c 格式代碼 檔案

格式代碼:

針對檔案(非全部列舉)

%A:用檔案權限代碼來表示權限

%F:用八進制表示檔案權限

%G:檔案擁有者的組名

%g:檔案擁有者的屬組id(gid)

%i:inode編号

%n:檔案名

%s:檔案大小

%U:檔案擁有者名稱

%u:檔案擁有者的id(uid)

%x: 取用時間

%y: 修改時間

%z: 屬性改動時間

針對檔案系統:

%a: 一般使用者可自由使用的區塊數

%b: 全部的區塊數

%c: 全部的檔案節點數

%d: 可取用的檔案節點數

%f: 可取用的區塊數

三、關于chattr和lsattr

chattr指令的屬性:

chattr:增加特殊屬性:

chattr + 屬性代碼 檔案

+   表示個個屬性可個别地加上,不影響檔案其他原有的特殊屬性

=    表示直接指定檔案的屬性,原已存在機關被指定的屬性會消失

-    表示移除某些屬性

屬性:

a:檔案的取用時間不改變

i:不能修改檔案  隻有root才可以操作

D:該檔案不需要用dump做備份

lsattr指令:

lsattr:檢視修改的結果

lsattr 檔案

後記:關于stat名令可能工作中可以使用其他指令代替,對于查找系統檔案的時間戳确實是一個很好的指令,

但是對于時間戳,我發現很多人都在群裡問,touch的時候檔案戳改變的是哪個,等等有關的問題,還有就是使用find指令的時候,對于時間的比對不精确,希望大家能夠很好的了解時間戳的概念,以便于更好的工作。