2013-02-10 3 views
31

ファイルの日付はbashを、そこに任意のコンペアこれを処理する簡単な方法は? することができますSHA1私は新しいを知って助けてくれる?は、私は2つのファイルの日付を比較し、rsyncの</strong> <strong>を使用せずに新しいものと古いもの(複数可)を置き換えることができますどのように私は小さなDropboxのようなbashスクリプトに取り組んでいます

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

「ファイルの日付」という意味は実際には何を意味しているのでしょうか。あなたはおそらく 'mtime'を指していますが、特異性は良いです。 –

+0

@WilliamPursell、最後の修正は私が意味する –

答えて

72

+5

それはすごい:)))私はセントOSに新しいので、単純な比較は、仕事をすることができないと思った:) uに感謝: –

+0

-ntより新しいまたは同じ年齢を意味するようです。 –

+0

@JoeC私はテストして、同じ年齢が1を返した場合( 'touch -r ... 'の後に) –

2

man stat

stat -c %y file 
+0

これは私が達成しようとしていたもので私を助けました。さて、それらの時間を比較する方法は?私はここに答えを使用しています:http://stackoverflow.com/questions/8116503/how-to-compare-two-datetime-strings-and-return-difference-in-hours-bash-shell Perfect! – harperville

2

、あるいは短く、よりよい、見て:あなたは-nt(より新しい)と-ot演算子(より古い)を使用して、testとファイルの修正時刻を比較する方法について

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

ここにPOSIXソリューションがあります:

find -name file2 -newer file1