-s
매개변수를 설정하면 diff
다른 파일도 인쇄됩니다.
diff -s $FIRST_FILE $SECOND_FILE
답변1
Unix의 철학은 모든 작업에 도구가 있고 쉘이 모든 작업을 하나로 묶어준다는 것입니다. 따라서 비교 도구, 원하는 출력 형식을 얻기 위한 도구입니다.
이 경우 출력 형식은 매우 간단하며 이 부분은 셸을 사용하여 직접 수행할 수 있습니다.
두 파일을 비교하려면 차이점을 나열하는 대신 동일한 내용이 있는지 여부에만 관심이 있는 경우 다음을 사용하세요.cmp
.
if cmp -s -- "$FIRST_FILE" "$SECOND_FILE"; then
printf '%s\n' "$FIRST_FILE = $SECOND_FILE"
fi
답변2
가능한 해결책 중 하나는 다음과 같습니다.
diff -s $FIRST_FILE $SECOND_FILE > /dev/null
if [ $? -eq 0 ]; then
echo "The files are identical"
fi
참고: 질문 텍스트가 변경됩니다.
답변3
기본적으로 diff
동일한 파일이 제공되면 침묵을 유지합니다. 이것이 변경되는 동작의 유일한 측면입니다 -s
. 따라서 항상 파일을 비교하고 차이점을 출력합니다. 파일이 동일하면 동일한 파일을 전혀 언급하지 않고 -s
메시지도 출력합니다 .-s
-q
sums 를 결합하면 원하는 동작을 얻을 수 있습니다 -s
. -q
지시문은 diff
차이점을 자세히 설명하지 않고 파일이 다르다는 것만 나타냅니다(다른 경우).
예는 다음과 같습니다.
$ echo 1 > a
$ echo 2 > b
$ echo 2 > c
$ diff -qs a b
Files a and b differ
$ diff -qs b c
Files b and c are identical
답변4
파일 이름 주위에 따옴표를 넣었습니다. 파일 이름도 소문자로 변경해야 합니다.
diff "${FIRST_FILE}" "${SECOND_FILE}" > /dev/null && echo "Same"