OS X에서 어떤 디렉토리 비교 도구를 사용할 수 있습니까?
On 2월 10, 2021 by admin파일뿐만 아니라 디렉토리를 비교할 수있는 도구를 찾고 있습니다. 또한 명령 줄에서 도구를 호출 할 수있는 것도 중요합니다.
무료 도구가 있으면 좋을 것입니다. 무료가 아니라면 가격을 지정하세요.
답변
모든 Google 직원을 위해 … 비교를 넘어서 규칙을 확인하세요. Pro 버전은 30 달러 또는 50 달러입니다.
댓글
- 저는 일반적으로 무료 및 오픈 소스 대안이 있지만 BeyondCompare가있을 때 상용 솔루션을 권장하지 않으려 고 노력합니다. 모든 페니의 가치가있는 특별한 경우입니다. 또한 멀티 플랫폼입니다. 10 년 이상 사용해 왔으며 MacOS 버전을 받기까지 오래 기다렸습니다.
- 지금은 2020 년 4 월이고 프로 버전은 이제 60 달러입니다.
- I ‘이 페이지의 모든 솔루션을 시도했으며 Beyond Compare가 100 % 최고이자 가장 가치있는 추천이라고 생각합니다.
답변
FileMerge (무료)는 Xcode와 함께 제공되며 디렉토리보기를 제공합니다.
명령 줄 버전 터미널 응용 프로그램 opendiff를 통해 사용할 수 있습니다.
다음은 FileMerge로 두 디렉토리를 비교하는 방법입니다.
- ⌘ + space, “FileMerge”를 입력하고 엽니 다.
- “왼쪽”버튼을 클릭하고 항목을 이동할 폴더를 선택합니다. ( “이전”폴더)
- “오른쪽”버튼을 클릭하고 원하는 폴더를 선택합니다. 항목을 다음으로 이동합니다. ( “새”폴더) “비교”버튼을 클릭합니다.
- 오른쪽 패널에서 제외 : “동일”및 “오른쪽으로 변경”을 선택합니다. 이렇게하면 계속됩니다. y “new”폴더에서 누락 된 파일을보고 “new”폴더에 추가했을 수있는 파일을 무시합니다.
- Finder에서 파일을 수동으로 이동하거나 FileMerge에서 옵션을 선택하여 파일 병합을 허용합니다. 오른쪽 패널의 “병합”드롭 다운.
댓글
- 는 OS X와 거의 ” 번들 된 “로 간주 될 수 있지만 두 개의 폴더를 비교하려고하면 이해하기 쉽지 않은 추악한보기와 파일보기에서 두 파일을 병합하는 방법을 볼 수 없었습니다. 나는 ‘ 가능하다고 확신하지만이 기본 기능이 명확하지 않은 경우 더 나은 것을 찾는 것이 좋습니다.)
- FileMerge는 장기적으로 BeyondCompare. 하지만 무료이며 ‘ 내가 찾고 있던 가격 인 일회성 요구 사항에 대해 🙂
답변
macOS 및 Linux 용 내장 유틸리티
터미널을 사용해도 괜찮다면 diff
명령은 디렉토리를 비교할 수 있습니다.
이 유틸리티는 대부분의 Linux 배포에서도 사용할 수 있습니다.
diff -rq directory1/ directory2/
-r
는 하위 디렉터리를 통한 재귀를 나타내며 -q
는 간단한 출력을 제공합니다 (즉, 실제 차이점을 표시하지 않고 어떤 파일 / 디렉터리가 다른지 확인).
기타 유용한 옵션은 다음과 같습니다.
-s
동일한 파일보고,
-i
파일 내용에서 대소 문자 무시,
--ignore-file-name-case
파일 이름을 비교할 때 대소 문자를 무시합니다.
.DS_Store
파일을 사용하고 다음을 사용합니다.
diff -rq directory1/ directory2/ | grep -v .DS_Store
댓글
-
diff --exclude node_modules
- 더욱 좋습니다.
diff -x node_modules
를 통해 직접 하위 폴더를 제외 할 수 있습니다.
Answer
Diffmerge 는 모든 요구 사항을 충족해야합니다.
댓글
- 설치 프로그램을 만들었 으면합니다. 명령 줄 스타터를 설치하고 현재 설치 환경을 개선 할 수 있습니다.
- 이것은 오래된 주제이지만
brew cask install diffmerge
를 통해 설치했고 설치했습니다. 문제없이. - 2016 년 4 월 : 여전히 유지 관리되고 있으며 여전히 사용하는 개발 도구 중 하나입니다.
- FWIW
brew cask install diffmerge
오늘 (2020 년 6 월) 그리고 diffmerge를 실행하려고 할 때 MacOS가 ‘ 프로그램을 실행할 수 없기 때문에 ‘ 실행할 수 없다는 경고 상자를 받았습니다. “>
개발자를 확인하지 마십시오. (diffmerge가 실행되지 않았습니다.)
open
를 선택하셨습니까? 답변
이를위한 또 다른 깔끔한 도구는 Unix & Linux StackExchange에 설명 된대로 rsync입니다. .두 폴더를 비교하려면
rsync -avun $SOURCE $TARGET
파일 일관성 / 비트 썩음이 정말로 걱정된다면 파일 체크섬을 비교하는 c 옵션도 있습니다.
p>
rsync -avnc $SOURCE $TARGET
댓글
- 모든 Unixes에서 유용성에 대한 훌륭한 참조 🙏🏻.
답변
최근에 Kaleidoscope (약 40 달러). “깨끗한 앱입니다.
vimdiff 는 명령 줄을 통해서도 사용할 수 있으며 대부분의 UNIX 도메인에서 이식 가능합니다.
댓글
- ‘ 저는 지금까지 몇 달 동안 Kaleidoscope를 사용해 왔습니다. 그만한 가치가 있습니다. 가끔씩 판매됩니다.
- Kaleidoscope는 파일 편집을 허용하지 않습니다. 쓸모 없습니다!
- 2020 년 App Store의 Kaleidoscope 가격 : 74,99 유로
답변
강력한 오픈 소스 소프트웨어 meld 를 사용해보세요. Mac 버전 Meld for OSX 에서 찾을 수 있습니다. 디렉토리 및 파일 비교를 모두 지원하며 Mac에서 잘 작동합니다.
이를 개선하라는 말을 들었습니다. Meld가 좋은 이유에 대한 답변과 설명. 일반적으로 Meld는 주로 GNOME에서 사용되는 전체 기능 비교 소프트웨어입니다. 여기에 나열된 많은 소프트웨어보다 낫습니다.
- 무료이며 오픈 소스이기 때문입니다. . 그래서 요 요금이나 보안에 대해 걱정할 필요가 없습니다.
- 더 강력하지 않다면 많은 돈을 요구하는 많은 소프트웨어만큼 정교합니다.
- 사용자입니다. 친숙하고 복잡한 구성이나 터미널에서 명령 입력을 포함하지 않습니다. 설치 후 바로 사용할 수있을 것입니다.
그만큼 좋지 않은 부분은 GTK로 개발 된 것입니다. 그래서 때로는 자연 MAC 프로그램처럼 느껴지지 않습니다. 게다가 이전 MAC 버전은 약간 버그가 많았습니다. 하지만 현재 사용중인 최신 3.19.2는 훌륭하게 작동하며 문제를 만난 적이 없습니다.
댓글
- 또한 설치가 쉽습니다.
brew cask install meld
답변
Bare Bones Software의 Text Wrangler 에는 디렉토리 비교 기능이 있지만 두 디렉토리에있는 파일과 각 디렉토리에만있는 파일 만 표시됩니다. 버튼 클릭으로 변경 사항을 한 줄씩 병합하여 편집 할 수있는 두 파일 모두에 있습니다. 파일을 이동할 수는 없습니다. 외부에서 (예 : Finder를 통해)이 작업을 수행해야합니다.
더 나은 무료 옵션 중 하나입니다.
Answer
폴더 동기화를 사용합니다 Mac App Store 정말 잘 작동합니다.
답변
대용량 폴더 구조 (DVD)를 비교해 왔습니다. 과거에이 작업을 수행하기 위해 명령 줄 유틸리티를 개발했습니다. 최근에 유틸리티 (CrcCheckCopy)를 무료 및 크로스 플랫폼 (MacOS 및 Windows)으로 만들었습니다.
CrcCheckCopy는 소스 폴더를 스캔하고 생성합니다. 모든 파일의 CRC 스탬프가 포함 된 파일입니다.이 파일은 대상 폴더를 비교하는 데 사용됩니다.
여기에서 가져올 수 있습니다. https://www.starmessagesoftware.com/crccheckcopy 귀하의 의견에 감사드립니다.
답변
앱 변경 ($ 37.19) rkforce. Beyond Compare만큼 좋습니다.
참고 :이 QA가 존재하는 것이 허용되기를 바랍니다. 제품에 대한 제안은 최소한 SO 규범에 위배됩니다. macOS를위한 사용 가능하고 직관적 인 그래픽 디렉토리 비교 도구에 대한 필요성은 여전히 절실합니다. 오픈 소스 후보는 상용 도구가 제공하는 사용성 수준에 도달하지 못했습니다.
답변
Python 실행 방법을 알고있는 경우 , 다음은 두 디렉터리를 효율적으로 비교하기 위해 얼마 전에 작성한 스크립트입니다.
기능 :
- 트리 구조와 파일 변경 사항을 비교할 수 있습니다 (파일 크기 & MD5 해시)
- 파일 비교를 해제하고 트리 구조 변경 만 표시 (매우 빠름!)
- 파일 내용 비교 해제 가능 , 파일 크기 변경 (매우 빠름)에만 의존
- 더 나은 가독성을 위해 출력을 색상화할 수 있습니다.
그리고 당연히 필요에 따라 수정할 수 있습니다. 프로그래밍 방법을 알고있는 경우.
#!/usr/bin/env python3 """ A script to recursively compare two directories (including file size and file hash changes) Usage: python3 compare_dirs.py DIR1 DIR2 """ import os, sys, hashlib COMPARE_FILES = True # should file sizes be compared if their names are the same? MD5 = True # should file hash sums be compared if their names and sizes are the same? COLORIZE = False # colorization for bash (only Linux & Unix) def md5sum(fn): hasher = hashlib.md5() with open(fn, "rb") as f: hasher.update(f.read()) return hasher.hexdigest() WHITE, RED, GREEN = 15, 196, 46 fg = lambda text, color: "\33[38;5;" + str(color) + "m" + text + "\33[0m" def compare_dirs(d1: "old directory name", d2: "new directory name"): def print_local(a, msg): text = "{} {} {}".format("DIR " if a[2] else "FILE", a[1], msg) if COLORIZE: color = {"added": GREEN, "removed": RED}.get(msg, WHITE) print(fg(text, color)) else: print(text) # Ensure validity for d in [d1,d2]: if not os.path.isdir(d): raise ValueError("not a directory: " + d) # Get relative path l1 = [(fn, os.path.join(d1, fn)) for fn in os.listdir(d1)] l2 = [(fn, os.path.join(d2, fn)) for fn in os.listdir(d2)] # Determine type: directory or file? l1 = sorted([(fn, pth, os.path.isdir(pth)) for fn, pth in l1]) l2 = sorted([(fn, pth, os.path.isdir(pth)) for fn, pth in l2]) i1 = i2 = 0 cnt = 0 common_dirs = [] while i1<len(l1) and i2<len(l2): if l1[i1][0] == l2[i2][0]: # same name if l1[i1][2] == l2[i2][2]: # same type if l1[i1][2]: # Pair of directories -> remember the name for recursion common_dirs.append((l1[i1][1], l2[i2][1])) elif COMPARE_FILES: # Pair of files -> compare their sizes size1 = os.stat(l1[i1][1]).st_size size2 = os.stat(l2[i2][1]).st_size if size1!=size2: print_local(l1[i1],"size changed: {:d} -> {:d}".format(size1, size2)) elif MD5: # Sizes are the same -> compare MD5 hashes if md5sum(l1[i1][1])!=md5sum(l2[i2][1]): print_local(l1[i1],"hash changed") else: print_local(l1[i1],"type changed") i1 += 1 i2 += 1 elif l1[i1][0]<l2[i2][0]: print_local(l1[i1],"removed") i1 += 1 elif l1[i1][0]>l2[i2][0]: print_local(l2[i2],"added") i2 += 1 cnt += 1 while i1<len(l1): print_local(l1[i1],"removed") i1 += 1 cnt += 1 while i2<len(l2): print_local(l2[i2],"added") i2 += 1 cnt += 1 # Compare subfolders recursively for sdir1,sdir2 in common_dirs: cnt += compare_dirs(sdir1, sdir2) return cnt if __name__=="__main__": print ("Comparing files {}abled".format("en" if COMPARE_FILES else "dis")) print ("MD5 checking {}abled".format("en" if MD5 else "dis")) print ("Colorization {}abled".format("en" if COLORIZE else "dis")) print (compare_dirs(sys.argv[1], sys.argv[2]), "items compared")
링크 를 GitHub Gist에 연결합니다.
참고 : iCloud로 이동 한 파일 또는 하위 디렉토리에서는 작동하지 않습니다.
답변
가장 쉬움 솔루션 : 동기화 Dropbox 또는 이와 유사한 파일을 사용한 다음 Windows에서 WinMerge를 사용하십시오.
Xcode와 함께 제공되는 FileMerge 유틸리티는 “폴더를 비교하지 않으며 병합 / 편집을 수행하지 않습니다.
답글 남기기