복사하고 덮어쓰기 전에 파일이 다른지 어떻게 확인하나요?

복사하고 덮어쓰기 전에 파일이 다른지 어떻게 확인하나요?

cp나는 작은 스크립트를 사용하여 프로필 목록을 다른 장치에 복사(사용)합니다. 이 작업을 수행하기 전에 마지막으로 파일이 수정되었는지 빠르게 확인하여 장치의 리소스를 소모하는 방법을 알고 싶습니다.

답변1

config장치의 디렉터리에 해당하는 로컬 디렉터리가 있고 config로컬에서만 변경한 다음 이를 장치와 동기화한다고 가정하면 이는 rsync동기화를 수행하는 데 좋은 도구입니다.

로컬 디렉터리를 장치 디렉터리에 동기화합니다.

$ rsync -av config/ [email protected]:path/to/config/

config로컬 디렉터리에 더 이상 존재하지 않는 장치의 파일을 삭제하려면 --delete다음에 플래그를 추가하세요 rsync.

$ rsync -av --delete config/ [email protected]:path/to/config/

장치의 디렉터리를 로컬 디렉터리로 바꾸고 백업 config/합니다 (질문에서 어느 방향으로 가고 싶은지 약간 불분명함).[email protected]:path/to/config/config

답변2

if ! diff -q file1 file2 > /dev/null 2>&1;
then

  echo "Files are changed"

else

  echo "Files not changed"

fi

답변3

일반적으로 diff/cmp문제가 없지만 파일이 큰 경우 비교하는 데 시간이 걸릴 수 있습니다. 더 빠른 방법은 타임스탬프를 비교 stat하거나 체크섬을 비교하는 것 입니다.md5sum

관련 정보