2013-02-10 54 views
31

我工作的一個微小的下拉框狀的bash腳本,我怎麼可以比較兩個文件的日期,並取代舊的(S)與新的不使用rsync的 有什麼處理這個簡單的方法? 可以通過SHA1幫助我瞭解更新嗎?比較文件的日期慶典

+0

這實際上取決於你的意思是「文件的日期」。你可能指的是'mtime',但特異性很好。 – 2013-02-10 21:32:58

+0

@WilliamPursell,最後一次修改我的意思是 – 2013-02-10 21:34:48

回答

72

您可以test比較文件的修改時間,使用-nt(比新)和-ot(比老)運營商:

if [ "$file1" -ot "$file2" ]; then 
    cp -f "$file2" "$file1" 
fi 
+5

這真棒:)))從來沒有想過簡單的比較可以做這項工作,因爲我是新來的centOS :) 謝謝你:) – 2013-02-10 21:41:51

+0

-nt似乎意味着比同齡人更新。 – 2015-01-06 16:23:00

+0

@JoeC我測試過了,如果同一個年齡返回1('touch -r ...'之後) – 2015-02-06 18:31:58

2

怎麼樣

stat file|awk -F': ' '/Modify: /{print $2}' 
+0

這一次幫助我完成了我想要完成的任務。現在,如何比較這些時間?我使用在這裏找到的答案:http://stackoverflow.com/questions/8116503/how-to-compare-two-datetime-strings-and-return-difference-in-hours-bash-shell完美! – harperville 2013-12-31 16:11:45

2

或者更短,更加好,看at man stat

stat -c %y file 
4

這是一個POSIX解決方案:

find -name file2 -newer file1