2012-10-08 19 views
0

我想弄清楚在創建另一個文件之前和之後30分鐘(作爲示例)創建的所有文件創建的命令。到目前爲止,我設法找到比文件 更新的文件,但我無法弄清楚在給定時間之前和之後如何查找。查找在指定文件之前和之後30分鐘創建的文件 - UNIX

我使用了一個命令: 找到型的F -newer file.txt的-cmin -30

這工作得很好,但只做了什麼,我試圖做的一半。 此外,我需要修改它只搜索setuid文件,我認爲我可以通過在該命令中添加-perm -4000來執行此操作。

有什麼建議嗎?

+0

'cmin'確實*不*看創作時間。文件的創建時間不記錄在任何通用文件系統中。 –

回答

3

據我所知,沒有辦法找到文件創建時間。 您可以通過修改時間嘗試(這將讓所有的文件最後修改的第5和第8間)

find . -type f -newermt 2012-10-05 ! -newermt 2012-10-08 

(或訪問時間newerat取代newermt

newerXY是標誌來比較當前文件的時間戳與參考(見男子發現更多信息)。

根據man find(在我的Debian),有4個標誌位(除了t直接作爲時間來解釋)

a The access time of the file reference 
B The birth time of the file reference 
c The inode status change time of reference 
m The modification time of the file reference 

您也可以嘗試用'B'出生的時間,但它並沒有爲我工作,給人我錯誤。我不知道爲什麼它被包含在手冊頁

比較到另一個文件

find/-newer file 
find/! -newer file 

您可以創建臨時文件(一個修改時間目標文件前30分鐘,另外30分鐘後)

touch -d `stat -c %y test.txt` - 30 temp/before_temp 
touch -d `stat -c %y test.txt` + 30 temp/after_temp 

find/-newer temp/before_temp ! -newer temp/after_temp 

touch -d需要一個日期選項,因此,如果您添加正確減,這應該工作。

相關問題