2013-10-19 6 views

答えて

3

BASHでは、最後に変更されてからの秒のためにこれを使用します。

expr `date +%s` - `stat -c %Y /home/user/my_file` 
6

私は、タグは、Linuxですけど、stat -c構文はOSX上で私のために動作しません。これは...作業を行い

echo $(($(date +%s) - $(stat -f%c myfile.txt))) 

とファイル名を指定して呼び出される関数として:Linuxので

lastmod(){ 
    echo "Last modified" $(($(date +%s) - $(stat -f%c "$1"))) "seconds ago" 
} 
+0

OS Xで動作していたかもしれませんが、現在は '-f%c'でエラーが発生しています。 'stat -c%Y" $ 1 "を使うと動作します。 –

+1

@BrentFoustまだ10.10.5で動作します( '-c%Y'はそうではありません)。エルキャピタンにいる? – beroe

+0

いいえ、10.10.5 Yosemite –

56

date -r fileは、ファイルが最後に変更された日付を表示します:

date +%s -r file.txt 

最後の変更から経過した秒数を出力するには、exprに現在の日付(秒)から最終変更日を引いたものを使用できます。

マックOS X( dateのBSD風味)で
echo $(($(date +%s) - $(date +%s -r file.txt))) 

、これは動作しません、あなたは他の回答が指摘したようにstat使用する必要があるだろう。

+0

そして、 ($(date + '%s%N' -r file.txt)/ 1000000)) ' – Yeti

+0

形式部分を最後の引数として移動すると、macでも動作します(少なくともsierraでは)。 'date -r file.txt +%s'と' echo $(($(date +%s) - $(date -r file.txt +%s))) '' – Timo

関連する問題