find命令 — 查詢指定時間內修改過的檔案
阿新 • • 發佈:2019-02-12
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