2013-02-10 46 views
31

मैं एक छोटे से ड्रॉपबॉक्स की तरह पार्टी स्क्रिप्ट पर काम कर रहा हूँ, मैं कैसे 2 फ़ाइलों की तिथियों की तुलना करें और का उपयोग कर rsync बिना एक पुरानी (रों) नए के साथ की जगह ले सकता है इसे संसाधित करने का आसान तरीका? SHA1 नया जानने के लिए मेरी मदद कर सकते हैं?कोई तुलना फ़ाइल की तारीख बैश

+0

यह वास्तव में "फ़ाइल की तारीख" से आपका क्या मतलब है इस पर निर्भर करता है। आप शायद 'माईटा' का जिक्र कर रहे हैं, लेकिन विशिष्टता अच्छी है। –

+0

@ विल्यमपर्सेल, आखिरी संशोधित मेरा मतलब है –

उत्तर

72

आप test साथ फ़ाइल संशोधन बार की तुलना कर सकते, -nt का उपयोग कर (की तुलना में नए) और -ot (से अधिक उम्र के) ऑपरेटरों:

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

यह कमाल है :))) कभी सोचा नहीं कि सरल तुलना नौकरी कर सकती है क्योंकि मैं सेंटोस के लिए नया हूं :) धन्यवाद :) –

+0

-ऐसा लगता है कि उम्र से भी कम उम्र का नहीं है। –

+0

@ जोएसी मैंने परीक्षण किया और यदि वही उम्र लौटा दी गई ('स्पर्श-आर ...' के बाद) –

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

2

या भी कम और अच्छे, देखो man stat:

stat -c %y file 
4

यहां एक पॉज़िक्स समाधान है:

find -name file2 -newer file1