歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux find命令查找比某個文件新或舊的文件

linux find命令查找比某個文件新或舊的文件

日期:2017/3/1 18:04:13   编辑:Linux技術
如果希望查找更改時間比某個文件新但比另一個文件舊的所有文件,可以使用-newer選項。
它的一般形式為:


復制代碼代碼如下:
newest_file_name ! oldest_file_name
---其中,!是邏輯非符號。
$ find . / -newer age.txt ! -newer belts.txt -exec ls -l {} \;


例如:
查找2012年17日17:00到17:40更新的文件)


復制代碼代碼如下:
#touchu -t 201212171700 startemp
#touchu -t 201212171740 end temp
#find ./ -newer starttemp -a ! -newer aaa -exec ls -l {} \;


這裡有兩個文件,它們的更改時間大約相差兩天。
下面給出的find命令能夠查找更改時間比文件age.txt新但比文件belts.txt舊的文件:
如果想使用find命令的這一選項來查找更改時間在兩個小時以內的文件,除非有一個現成的文件其更改時間恰好在兩個小時以前,否則就沒有可用來比較更改時間的文件。為了解決這一問題,可以首先創建一個文件並將其日期和時間戳設置為所需要的時間。這可以用touch命令來實現。
假設現在的時間是2 3 : 4 0,希望查找更改時間在兩個小時以內的文件,可以首先創建這樣一個文件:


復制代碼代碼如下:
$ touch -t 05042140 time.txt
$ ls -l time.txt
-rw-r--r-- root root 0 May 4 21:40 time.txt


一個符合要求的文件已經被創建;這裡我們假設今天是五月四日,而該文件的更改時間是2 1 : 4 0,比現在剛好早兩個小時。
現在我們就可以使用find命令的-newer選項在當前目錄下查找所有更改時間在兩個小時以內的文件:


復制代碼代碼如下:
$ find ./ -newer time.txt -print
Copyright © Linux教程網 All Rights Reserved