파일의 마지막 수정 날짜와 현재 쉘 스크립트를 사용하는 날짜 사이의 날짜 차이를 계산합니다.

파일의 마지막 수정 날짜와 현재 쉘 스크립트를 사용하는 날짜 사이의 날짜 차이를 계산합니다.

로그 파일이 마지막으로 업데이트된 이후 경과된 시간을 계산하려고 합니다.

다음 명령을 사용하는 것 같아요

lastUpdate=$(date -r myLogFile.log)
now=$(date)

어떻게 이를 빼고 경과된 초의 결과를 얻을 수 있습니까?

답변1

lastUpdate="$(stat -c %Y myLogFile.log)"
now="$(date +%s)"
let diff="${now}-${lastUpdate}"

답변2

두 출력을 비교하여 현재와 수정된 날짜 사이의 초 수를 가져옵니다.

stat -c %Y file  vs date +%s

답변3

거의 다 왔어요! date계산하기 쉬운 형식을 사용하라고 만 하세요 .

lastUpdate=$(date -r myLogFile.log +%s)
now=$(date +%s)
file_age=$((now - lastUpdate))

답변4

짧막 한 농담:

stat -c %Y /path/to/file | echo `expr $(date +%s) - $(cat)`

관련 정보