"cmp -s file1 file2"는 출력을 생성하지 않습니다.

"cmp -s file1 file2"는 출력을 생성하지 않습니다.
$ cmp -s file1 file2

위 명령은 다음과 같은 경우에는 아무것도 반환하지 않습니다.

  • 사례 1: 두 파일(file1과 file2)이 다릅니다.
  • 사례 2: 두 파일(file1 및 file2)이 동일합니다.

위의 모든 방법을 시도했지만 내 유닉스 시스템은 민감하지 않습니다.

답변1

-s이다조용한, 이는 cmp아무것도 출력하지 않고 파일이 동일한지 여부를 종료 상태에 반영하여 if쉘 문에서 사용할 수 있도록 지시합니다.

if cmp -s file1 file2; then
  echo same
else
  echo differ or error
fi

또는:

cmp -s file1 file2 && rm file2

무언가를 출력하려면 삭제하십시오 -s. 그런 다음 cmp파일이 다르면 시작 위치가 다르다는 메시지가 출력됩니다.


¹ 파일이 다를 때가 아니라 파일을 열 수 없을 때 오류 메시지를 표시하는 일부 구현을 제외합니다.

답변2

1번 사건에 대해 질문이 있습니다. cmp가 아무것도 반환하지 않으면 파일은 아마도 동일할 것입니다. diff file1 file확인해 보세요 sum file1 file2. 인쇄할 수 없는 문자에 차이가 있을 수 있습니까?

관련 정보