명령줄에서 두 디렉토리의 내용 비교

Anonim

diff와 같은 명령을 통해 얻는 추가 출력 없이 두 디렉토리의 다른 내용을 비교하고 나열하려면 comm 명령을 대신 사용할 수 있습니다. 시작하려면 터미널을 실행하고 다음 명령을 입력하여 디렉토리 경로를 적절하게 조정하십시오.

comm -3 <(ls -1 폴더1) <(ls -1 폴더2)

나열된 출력은 폴더 1에 고유한 파일이 왼쪽에 정렬되고 폴더 2에 고유한 파일이 오른쪽에 정렬되어 각 폴더마다 다른 파일이 됩니다.

예를 들어, 사용자 다운로드 디렉토리에 저장된 "Pictures"라는 폴더와 "OldPictures"라는 폴더의 내용을 비교하려면 구문은 다음과 같습니다.

comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)

출력은 다음과 같습니다.

$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG 폴더 -2-파일 복사.PNG 사진 1장.PNG 사진 3.PNG

각 폴더에 고유한 파일을 표시하는 들여쓰기에 유의하십시오. 위의 예에서 "photo 1 copy.PNG" 및 "photo 3.png" 파일은 오른쪽에 정렬되어 있으므로 OldPictures 디렉토리 및 Folder-1-File에 대해 고유합니다.PNG 및 Folder-2-File copy.PNG는 원본 사진 폴더에 고유합니다.

이것은 Mac OS X에서 잘 작동하지만 일반 유닉스 명령이므로 Linux 및 기타 변종에서도 사용할 수 있습니다. 호환성 문제가 발생하거나 이 명령이 불필요하게 복잡하다고 생각되면 diff를 사용하여 동일한 기능을 수행해 보십시오.

트위터에서 @climagic이 발견한 멋진 트릭, @osxdaily도 거기에 있습니다!

명령줄에서 두 디렉토리의 내용 비교