cp -u가 실제로 파일을 복사했는지 확인하는 방법은 무엇입니까?

cp -u가 실제로 파일을 복사했는지 확인하는 방법은 무엇입니까?

.dll을 사용하여 파일이 복사되었는지 확인하는 간결한 방법을 찾고 있습니다 cp -u.

꽤 많은 파일을 업데이트하는 작은 쉘 스크립트가 있습니다. 현재 스크립트는 echo복사되는 각 파일에 대한 작은 메시지를 표시합니다.

echo이제 파일이 실제로 업데이트되었을 때만 실행 되도록 스크립트를 변경하고 싶습니다 . 파일이 복사되지 않으면 오류코드가 나오는지 확인해 봤는데 cp -u그렇지 않습니다.

파일의 타임스탬프를 수동으로 비교하는 것보다 더 좋은 방법이 있습니까?

답변1

if [ "$(cp -uv source destination)" != "" ]; then echo copied; else echo not copied; fi

업데이트

cp의 자세한 출력에서 ​​"->"를 일치시킵니다. 성공적으로 복사할 수 있고 파일 이름에 "->"가 포함되지 않은 경우에만 발생합니다.

if [[ "$(cp -uv source destination)" =~ \-\> ]]; then echo copied; else echo not copied; fi

관련 정보