문제

지난 3 분 이내에 특정 파일이 변경되었는지 확인하고 싶습니다. cp 성공했고 내가해야한다면 exit 또는 스크립트를 계속하십시오. 어떻게 할 수 있습니까?

감사

도움이 되었습니까?

해결책

파일의 마지막 수정 시간을 stat, 및 현재 날짜 date. "시대의 이후 몇 초"에 둘 다 형식 문자열을 사용할 수 있습니다.

current=`date +%s`
last_modified=`stat -c "%Y" $file`

그런 다음 조건에 넣는 것은 매우 쉽습니다. 예를 들어:

if [ $(($current-$last_modified)) -gt 180 ]; then 
     echo "old"; 
else 
     echo "new"; 
fi

다른 팁

이 if 문의 구문은 특정 쉘에 따라 다르지만 날짜 명령은 그렇지 않습니다. 나는 bash를 사용한다. 필요에 따라 수정하십시오.

if [ $(( $(date +%s) - $(date +%s -r <file>) )) -le 180 ]; then
    # was modified in last three minutes
else
    # was not modified in last three minutes
fi

그만큼 +%s 날짜에 유닉스 시간을 출력하도록 지시합니다 (중요한 비트는 몇 초 만에 정수라는 것입니다). STAT를 사용 하여이 정보를 얻을 수도 있습니다 - 명령 stat -c %Y <file> 동등합니다. 사용하십시오 %Y ~ 아니다 %y, 당신은 몇 초 만에 사용할 수있는 시간을 얻도록합니다.

STAT 명령은 마지막 수정 시간을 제공합니다.

stat -c %y <filename>

파일 이름이 지난 3 분 안에 수정 된 경우 파일 이름을 출력 할 수 있습니다.

find file1 -maxdepth 0 -mmin -3

파일 타임 스탬프 변경이 실제로 귀하가 성공적으로 복사 한 것을 의미하지는 않습니다.
파일을 손상 시키거나 파일 시스템이 공간이 부족한 경우
아마도 여전히 타임 스탬프 변경이 보일 것입니다 (확인해야합니다).

나는 당신의 요구 사항의 정확한 맥락을 얻지 못합니다.
당신이 해고되면 a cp, 완료하고 반품 - 작동하는 동안 돌아 오지 않습니다.
그렇다면 (성공 종료 코드와 함께) 수익률이 성공의 좋은 지표가 아닌가?

당신은 어떻게 그리고 왜 당신은 a에서 부분적으로 나가겠습니까? cp 작업?
또는 배치입니다 cp 파일 목록을 통해 반복되는 스크립트 ...
일부 정교화가 도움이 될 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top