2013-10-19 2 views

답변

3

BASH에서 마지막으로 수정 된 이후 초 동안이를 사용

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

나는 태그가 리눅스 알고 있지만, stat -c 구문은 OSX에 나를 위해 작동하지 않습니다. 이

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

그리고 함수로

파일 이름으로 호출 할 ... 작동합니까 :

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

관련 문제