1. 程式人生 > >find命令 — 查詢指定時間內修改過的檔案

find命令 — 查詢指定時間內修改過的檔案

find命令 – 之查詢指定時間內修改過的檔案

 
如果我們要查詢linux下指定時間內做過改動的檔案,我們可以用find命令,其實find命令的功能很豐富,下面我們通過幾個簡單的例子來學習下find命令的簡單用法:

find /opt -iname "*" -atime 1 -type f [-print]   #找出 /opt 下一天前訪問過的檔案

選項 OPTIONS

所有的選項都是返回真值,總會被執行,除非放在表示式中執行不到的地方。因此為了更好的易讀性,最好把它們放在表示式的開頭部分。
 

引數 功能
daystart 從當日起始時開始而不是從24小時之前,計算時間(for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。
amin n 對檔案的最近一次訪問是在 n 分鐘之前。
anewer file 對檔案的最近一次訪問比 file 修改時間要晚。如果命令列中 -follow 在 -anewer 之前,(也只有在這種情況下 -anewer會受 -follow 的影響)。
atime n 對檔案的最近一次訪問是在 n*24 小時之前。
cmin n 對檔案狀態的最近一次修改是在 n 分鐘之前。
cnewer file 對檔案狀態的最近一次修改比 file 修改時間要晚。如果命令列中 -follow 在 -cnewer 之前,(也只有在這種情況下-cnewer 會受 -follow 的影響)。
ctime n 對檔案狀態的最近一次修改是在 n*24 小時之前。
mmin n 對檔案資料的最近一次修改是在 n 分鐘之前。
mtime n 對檔案資料的最近一次修改是在 n*24 小時之前。
mtime 指定時間曾被改動過的檔案,意思是檔案內容被更改過。
ctime 指定時間曾被更改過的檔案,意思是檔案許可權被更改過。
atime                            指定時間曾被存取過的檔案,意思是檔案被讀取過(時間是以 24 小時為一個單位,而不是按天數計算的)。

例如:
2017/11/28 12:00 時間開始找一天內的,會列出 2017/11/27 12:00 ~ 2017/11/28 12:00 時間內的檔案

示例

1. 找出 3 天”以前”被改動過的檔案 (前第三天以前 → 2017/11/25 12:00 以前的檔案) (> 72 小時)

find /var/log/ -mtime +3 -type f

2.找出 3 天內被改動過的檔案 (2017/11/25 12:00 ~ 2017/11/28 12:00 內的檔案) (0 ~ 72 小時內)

find /var/log/ -mtime -3 -type f

3.找出前第 3 天被改動過的檔案 (2017/11/24 12:00 ~ 2017/11/25 12:00 內的檔案) (72 ~ 96 小時)

find /var/log/ -mtime 3 -type f

4.找出第 3 天被改動過的檔案 (也可以這樣寫)

find /var/log/ -mtime +2 -mtime -4 -type f