檔案的時間引數和find命令解析

2021-07-17 05:08:10 字數 3274 閱讀 9797

stat命令可以獲取檔案的三個時間,如下圖所示,他們分別是access,modify和change,那麼他們分別代表什麼意思呢?

access time:表示我們最後一次訪問(僅僅是訪問,沒有改動)檔案的時間

modify time:表示我們最後一次修改檔案的時間

change time:表示我們最後一次對檔案屬性改變的時間,包括許可權,大小,屬性等。

而且這三個時間有如下的特點:

1,當我們僅僅只是讀取檔案時,access time 改變,而modify,change time 不會改變

2,當修改檔案時,access,modify,change time 都會跟著改變

3,當修改檔案屬性時,change time 改變,而access,modify time 不變。

接下來我們來驗證一下:

1,這裡我對file檔案進行了cat,顯然access變了,而其他兩個沒變

2,這裡我對file的內容進行了修改,顯然三個時間都變了

3,這裡我修改了檔案的屬性,只有change改變

linux下查詢檔案的命令有兩個:locate 和 find

首先說下locate,locate這個命令是對其生成的資料庫進行遍歷(生成資料庫的命令:updatedb),這一特性決定了用locate查詢檔案速度很快,但是locate命令只能對檔案進行模糊匹配,在精確度上來說差了點。

find在不指定查詢目錄的情況下是對整個系統進行遍歷查詢,所以耗時比較久,但是精度很高。

格式 : find [指定查詢目錄] [查詢規則] [查詢完後執行的action]

(1)查詢目錄:注意,目錄之間要用空格分開

(2)查詢規則:

(a)根據檔名查詢

# -name //根據檔名查詢(精確查詢)

# -iname //根據檔名查詢,但是不區分大小寫

這裡介紹一下萬用字元:

*表示 通配任意的字元

?表示 通配任意的單個字元

[ ] 表示 通配括號裡面的任意乙個字元

(b)根據檔案所屬使用者和組來查詢檔案

# -user //根據屬主來查詢檔案

# -group //根據屬組來查詢檔案

(c)根據uid 和 gid來查詢使用者

#find /tmp -uid 500 //查詢uid是500 的檔案

#find /tmp -gid 1000 // 查詢gid是1000的檔案

(d)-a and -o and –not的使用

# -a 連線兩個不同的條件(兩個條件必須同時滿足)

# -o 連線兩個不同的條件(兩個條件滿足其一即可)

# -not 對條件取反的

(e)根據檔案時間戳的相關屬性來查詢檔案

這裡可以用stat來檢視檔案的時間資訊

#-atime

#-mtime

#-ctime

#-amin

#-mmin

#-cmin

所以這裡atime,mtime,ctime就是分別對應的「最近一次訪問時間」「最近一次內容修改時間」「最近一次屬性修改時間」,這裡的atime的單位指的是「天」,amin的單位是分鐘

#find /tmp –atime +5 //表示查詢在五天內沒有訪問過的檔案

#find /tmp -atime -5 //表示查詢在五天內訪問過的檔案

(f)根據檔案型別來查詢檔案

-type

f // 普通檔案

d //目錄檔案

l //鏈結檔案

b //塊裝置檔案

c //字元裝置檔案

p //管道檔案

s //socket檔案

(g)根據大小來查詢檔案

-size

#find /tmp -size 2m //查詢在/tmp 目錄下等於2m的檔案

#find /tmp -size +2m //查詢在/tmp 目錄下大於2m的檔案

#find /tmp -size -2m //查詢在/tmp 目錄下小於2m的檔案

(h)根據檔案許可權查詢檔案

-perm

#find /tmp -perm 755 //查詢在/tmp目錄下許可權是755的檔案

#find /tmp -perm +222 //表示只要有一類使用者(屬主,屬組,其他)的匹配寫許可權

#find /tmp -perm -222 //表示必須所有類別使用者都滿足有寫許可權

#find / -nogroup –a –nouser //在整個系統中查詢既沒有屬主又沒有屬組的檔案(這樣的檔案通常是很危險的,作為系統工程師的我們應該及時清除掉)

[查詢完執行的action]

# -print //預設情況下的動作

# -ls //查詢到後用ls 顯示出來

# -ok [commend] //查詢後執行命令的時候詢問使用者是否要執行

# -exec [commend] //查詢後執行命令的時候不詢問使用者,直接執行

這裡要注意{}的使用:替代查詢到的檔案

find命令的引數

find path option action 與時間有關的引數 mtime ctime atime n n為數字 n天之前 n 在n天之內 包含n天 n 在n天之前 不含n天 newer file 列出比file還要新的檔案 有關使用者和組名的引數 uid n n為數字 這個數字是使用者帳號的id...

find命令中引數perm的用法

按照檔案許可權模式用 perm選項,按檔案許可權模式來查詢檔案的話。最好使用八進位制的許可權表示法。如在當前目錄下查詢檔案許可權位為755的檔案,即檔案屬主可以讀 寫 執行,其他使用者可以讀 執行的檔案,可以用 de find perm 755 printde 還有一種表達方法 在八進位制數字前面要...

find命令中引數perm的用法

按照檔案許可權模式用 perm選項,按檔案許可權模式來查詢檔案的話。最好使用八進位制的許可權表示法。如在當前目錄下查詢檔案許可權位為755的檔案,即檔案屬主可以讀 寫 執行,其他使用者可以讀 執行的檔案,可以用 de find perm 755 printde 還有一種表達方法 在八進位制數字前面要...