2010-08-06 75 views
2

對於我正在處理的網站,我希望能夠在頁腳中自動更新「此頁最後修改時間:」部分,因爲我正在進行夜間git提交。基本上我計劃編寫一個shell腳本,每天晚上在午夜運行,這將完成我所有的通用服務器維護。大多數這些任務我已經知道如何自動化,但是我有一個文件(footer.php),它包含在每個頁面中並顯示網站上次更新的日期。我希望能夠遞歸地查看我的網站並檢查每個文件的時間戳,然後如果在footer.php中的日期之後編輯了這些文件,我想更新此日期。在UNIX中遞歸地定位最近更新的文件

我需要的是一個UNIX命令,它將遞歸地遍歷我的文件,並只返回上次修改的日期。我不需要文件名或進行了哪些更改,我只需要知道最近更新的文件發生變化的一天(有希望的時間)。

我知道使用「ls -l」和「cut」我可以迭代每個文件夾來做到這一點,但我希望能夠更快速地運行和更簡單的命令。最好使用單行shell命令(可能帶有-R參數)

回答

0

您可能需要查看inotify腳本,該腳本每次修改任何其他文件時都會更新頁腳,而不是全部通過文件系統查看新的更新。

1

GNU找到

find /path -type -f -iname "*.php" -printf "%T+" 

檢查查找手冊頁和其他-printf符玩。

+0

可能領導一個'sort'和'之後head'? '%T +'是一個GNU擴展,所以在OP的機器上可能不可用。 – 2010-08-06 16:16:38

+0

您還需要刪除 - from -f。 – 2010-08-07 07:29:05

2

find以Unix格式輸出所有訪問時間,然後排序並取最大值。 轉換成任何日期格式希望留給作爲練習讀者:

find /path -type f -iname "*.php" -printf "%[email protected]" | sort -n | tail -1 
+1

命令看起來不錯,但是當我試用它時,得到: find:-type應該只包含一個字母 我應該使用「-type f」而不是「-type -f」嗎? – 2010-08-06 17:58:38

+0

是的你是對的。 – 2010-08-07 07:28:41