2012-01-24 17 views
28

看到我在一個BIG項目源代碼中工作現在我想知道哪些文件在某個日期後被修改。有沒有什麼辦法在整個項目代碼的某個日期後找出更改後的文件?

是否有任何命令或任何方式來獲得的..

我曾嘗試

# ls -R -l 

但在這裏它顯示了最後一次修改數據的所有文件,但我想通過一些數據來過濾這些輸出...

那麼有什麼辦法可以做到這一點在Linux?有沒有可用的工具?

+1

什麼是scm工具?幾乎所有的版本控制工具都帶有好的查詢機制 – Jayan

+0

查找具有不同的選項來提供基於訪問日期的列表 – Jayan

回答

59
#set timestamp for file  
touch --date "2011-12-31" /tmp/foo 
# Find files newer than 2011/Dec/31, in /some/files 
find /some/files -newer /tmp/foo 
+7

特定時間後: touch -d'2011-12-31 10:22'/ tmp/foo –

22

使用找到命令的mtime參數:Some examples are herehere

例如,在過去的7天改爲列表文件...

find/-type f -mtime -7 

對於罰款晶搜索你可能會嘗試-mmin的論點。查看另一個SE網站中討論的示例:Find All files older than x minutes

+1

問題與mtime是它太粗糙了。如果您在6小時前和8小時前修改了文件,則無法通過查找來區分它們。您需要使用[peko的解決方法](http://stackoverflow.com/a/8986162/111424)。 –

+0

此命令給出7 * 24小時前修改的文件,而不是那些在過去7天內發生更改的文件。 –

+0

有沒有用speficic關鍵字跳過某些子文件夾留下「緩存」和「日誌」?例如。 '''find/-type f -mtime -7 -skip「cache,log」?'''謝謝。 – Ahdee

相關問題