1. 程式人生 > >find mtime引數+號,-號,不帶符號的用法

find mtime引數+號,-號,不帶符號的用法

1、atime、ctime與mtime

  • atime是指access time,即檔案被讀取或者執行的時間,修改檔案是不會改變access time的。
  • ctime即change time檔案狀態改變時間,指檔案的i結點被修改的時間,如通過chmod修改檔案屬性,ctime就會被修改。
  • mtime即modify time,指檔案內容被修改的時間。

1)使用stat可以檢視檔案的atime、ctime、mtime,例如:

stat ~/.bashrc

  File:`/home/user_00/.bashrc'

  Size: 1177            Blocks: 8          IO Block: 4096   regular file

Device: 801h/2049d      Inode:663962      Links: 1

Access: (0644/-rw-r--r--) Uid: ( 1003/ user_00)   Gid:(  100/  users)

Access: 2009-12-21 10:45:35.000000000 +0800

Modify: 2009-12-21 10:45:35.000000000 +0800

Change: 2009-12-2110:45:35.000000000 +0800

​​2)也可以使用ls檢視檔案的atime、ctime、mtime。通常情況下我們使用的ls –l ~/.bashrc指示的是檔案的modify time。

3)使用touch可以改變這三個時間。

2、find中mtime引數含義:

find命令後可以指定-atime、-ctime、-mtime,通常我們都是用mtime。find . –mtime n中的n指的是24*n, +n、-n、n分別表示: +n: 大於n -n:    小於n n:等於n

看一張圖

舉一個例子:

find . -mtime +0 -type f -name "oms*" | xargs rm -f

刪除24小時以內 oms格式的檔案。

說明:

一天是指當前系統時間算起的,向前減24小時。

但是在各種參考的使用方式中有用+號,-號,不帶符號的用法,那麼這裡又有什麼區別呢?注意這裡的n:

  • 如果n為帶有+號的值,意思為查詢n天前所有的檔案,比如n=+1且當前是24號9點,那麼查詢22號9點以前的資料,不包括22號9點到23號9點這段時間;
  • 如果是負號(n=-1)則為查詢一天內的檔案,比如當前時間24號9點,那麼查詢23點9點到24點9點時間段的資料,如果是(n=-2)則代表查詢兩天內的所有資料,比如當前時間24號9點,那麼查詢22點9點到24點9點時間段的資料;
  • 如果不帶有符號,那麼則查詢指定前n天中這一天的資料,比如(n=1)且當前時間24號9點,那麼查詢22點9點到23點9點這個時間段的資料。