find指定具體時間引數 newermt

2021-10-07 08:21:08 字數 929 閱讀 5482

之前在寫乙個檔案處理指令碼的時候,需要查詢在某個具體時間段內生成的批量檔案,第一時間想到的是"find -mtime",但是這種查詢的時間單位是天,怎麼精確到分鐘呢?或者說按照時間戳去查詢?這就需要使用"-newermt"

1."-newermt"引數

find /dir1 -type f -newermt 『2018-5-26 21:00』 ! -newermt 『2018-5-26 22:00』 -exec cp {} /dir2 ;

#將/dir1目錄下2018-5-26 21:00到2018-5-26 22:00時間段內修改或生成的檔案拷貝到/dir2目錄下

該引數中的m其實就表示mtime,t表示絕對時間,那同樣還存在:-newerat、-newerct

注意:在使用過程中發現,可能出現這樣的錯誤提示 find: i cannot figure out how to interpret 『2018-05-26』 as a date or time

出現這樣的問題,一般是因為系統版本低或者在指令碼中使用缺少執行環境造成的,可以將單條命令調整為:

cmd=「find /dir1 -type f -newermt 『2018-5-26 21:00』 ! -newermt 『2018-5-26 22:00』 -exec cp {} /dir2 ;」

echo $cmd | sh

2."-atime"、"-ctime"、"-mtime"引數

回憶一下這三個引數的使用方法:

-atime:訪問時間,檔案被讀取或執行的時間。

-ctime:屬性改變時間,檔案的inode被修改的時間

-mtime:內容修改時間

引數後面會跟上具體的數字:

-1:24小時之內操作過的

1:24小時之外,48小時之內操作過的

#這三種時間沒有交集@toc

**51cto部落格作者fjca的原創作品

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

stat命令可以獲取檔案的三個時間,如下圖所示,他們分別是access,modify和change,那麼他們分別代表什麼意思呢?access time 表示我們最後一次訪問 僅僅是訪問,沒有改動 檔案的時間 modify time 表示我們最後一次修改檔案的時間 change time 表示我們最後...

find命令查詢指定時間的大檔案並刪除

1.1 語法 使用find命令和rm命令結合使用刪除指定時間的檔案 時間單位為天 find 查詢路徑 ctime mtime atime 時間範圍 name 檔名稱 type f exec rm 時間單位為分鐘 find 查詢路徑 cmin mmin amin 時間範圍 name 檔名稱 type ...

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

比如我們要查詢linux下指定時間內做過改動的檔案,我們可以用find命令,其實find命令的功能十分強大,下面我們通過幾個簡單的例子來學習下find命令的簡單用法 find opt iname atime 1 type f 找出 opt 下一天前訪問過的檔案 選項 options 所有的選項都總是...