다른 위치에 저장된 여러 파일의 차이점을 비교하거나 찾는 bash 스크립트를 원합니다.
파일 아래/tmp/test/
- A.txt
- B.txt
- C.txt
/home/oldtest
/ 아래의 파일과 비교
- A.txt
- B.txt
- C.txt
건강 상태:
파일은
/tmp/test/A.txt
와만 비교됩니다/home/oldtest/A.txt
(다른 파일과 유사 -B.txt
와 비교B.txt
).변경 사항이 발견된 경우: 상태는 "A.txt 파일에 수정 필요"여야 합니다.
답변1
diff
GNU diffutils에는 재귀 비교 옵션이 있습니다:
diff -qrs /dir/A /dir/B
디렉터리 비교: -q
조용히(즉, 차이점이 인쇄되지 않고 파일이 다르다는 것만 보고함) -r
재귀적으로(모든 하위 디렉터리가 포함된 전체 트리) -s
동일한 파일을 보고합니다.
답변2
cd /tmp/test
for i in *.txt; do diff -q $i /home/oldtest/$i; done
서로 다른 각 파일에 대해 "파일 A.txt와 ../home/oldtest/A.txt가 다릅니다."가 출력됩니다.
답변3
cd /tmp/test/;
for x in *; do \
cmp -s "$x" /home/oldtest/"$x" || echo "Modification required in file $x";
done;|more
답변4
누군가가 당신을 위해 스크립트를 작성해 줄지는 모르겠지만, 당신은 그것을 사용할 수 있습니다 diff
. diff -q
.
예를 들어:
$ diff -q .vimrc .bashrc
Files .vimrc and .bashrc differ
자동화하려면 스크립트를 사용할 수 있습니다.
Bash 스크립트 작성 방법에 대한 좋은 참고 자료를 보려면 여기를 확인하세요.http://bash.cyberciti.biz/guide/Main_Page