OS Xで使用できるディレクトリ比較ツールは何ですか?
On 2月 10, 2021 by adminファイルだけでなく、ディレクトリを比較できるツールを探しています。また、コマンドラインからツールを呼び出せるようにすることも重要です。
無料のツールがあると便利です。無料でない場合は、価格を指定してください。
回答
すべてのグーグルについて… 比較を超えてルールを確認してください。 Proバージョンの場合は30ドルまたは50ドルかかります。
コメント
- 通常、無料でオープンソースの代替手段が存在するがBeyondCompareがある場合は、商用ソリューションの推奨を避けようとします。それはすべてのペニーの価値がある特別なケースです…そしてまたマルチプラットフォームです。私はそれを10年以上使用していて、MacOSバージョンを入手するのを長い間待っていました。
- 現在は2020年4月で、プロバージョンの価格は60ドルです。
- I ‘このページのすべてのソリューションを試しましたが、Beyond Compareが100%最良で最も価値のある推奨事項だと思います。
回答
FileMerge (無料)はXcodeに付属しており、ディレクトリビューを提供します。
コマンドラインバージョンターミナルアプリケーションopendiffから利用できます。
FileMergeで2つのディレクトリを比較する方法は次のとおりです。
- ⌘+スペース、「FileMerge」と入力して開きます。
- [左]ボタンをクリックして、アイテムの移動元のフォルダーを選択します。(「古い」フォルダー)
- [右]ボタンをクリックして、移動先のフォルダーを選択します。アイテムを移動したい。(「新しい」フォルダ)そして「比較」ボタンをクリックする
- 右側のパネルで、「同一」と「右に変更」を除外することを選択します。これにより、次のようになります。 y「new」フォルダにないファイルを確認し、「new」フォルダに追加した可能性のあるファイルを無視します。
- Finderでファイルを手動で移動するか、FileMergeにオプションを選択して移動させます。右側のパネルの[マージ]ドロップダウン。
コメント
- はOSXにほぼ”バンドルされていると見なすことができますが” 2つのフォルダを比較しようとすると、見づらい醜いビューで、ファイルビューで2つのファイルをマージする方法がわかりませんでした。 ‘可能だと確信していますが、この基本的な機能が明らかでない場合は、もっと良いものを探したいと思います;)
- FileMergeはそれほど良くありませんBeyondCompare、ロングショットで。ただし、無料であり、’が探していた価格であるという1回限りの要件があります:)
回答
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
回答
Diffmerge はすべての要件を満たしている必要があります。
コメント
- インストーラーが作成されることを願っていますこれにより、コマンドラインスターターをインストールして現在のインストールエクスペリエンスを向上させることができます。
- これは古いトピックですが、
brew cask install diffmerge
を介してインストールし、インストールしました。問題なく。 - 2016年4月:現在も維持されており、開発ツールの1つです。
- FWIWで
brew cask install diffmerge
今日(2020年6月)、diffmergeを実行しようとすると、MacOSが’プログラムを実行できないことを通知するアラートボックスが表示されました。’開発者を確認します。 (diffmergeは実行されませんでした) - @MikeTheTall Isn ‘アプリストア以外のアプリでは通常ですか?直接Ctrlキーを押しながらアプリのアイコンをクリックして、ショートカットメニューから
open
を選択しましたか?
回答
これを実現するためのもう1つの優れたツールは、 Unix & LinuxStackExchangeで説明されているrsyncです。 。2つのフォルダを比較するには、次のことができます。
rsync -avun $SOURCE $TARGET
ファイルの一貫性/ビットの腐敗が本当に心配な場合は、ファイルのチェックサムを比較するcオプションもあります
rsync -avnc $SOURCE $TARGET
コメント
- すべてのUnixでの有用性に関する優れたリファレンス🙏🏻。
回答
最近 Kaleidoscope のコピーを購入しました(約$ 40 US)。これは「クリーンなアプリです。
vimdiff もコマンドラインから利用でき、ほとんどのUNIXドメイン間で移植できます。
コメント
- I ‘数か月間Kaleidoscopeを使用しています。価格に見合う価値があります。たまに販売されます。
- Kaleidoscopeではファイルを編集できません。役に立たないです!
- 2020年のAppStoreでのKaleidoscopeの価格:74,99 eur
回答
強力なオープンソースソフトウェアメルドを試してみてください。Macバージョン Meld for OSX にあります。ディレクトリとファイルの両方の比較をサポートし、Macでうまく機能します。
これを改善するように言われましたMeldが優れている理由を答えて説明してください。一般的に、Meldは主にGNOMEで使用されるフル機能の比較ソフトウェアです。無料でオープンソースであるため、ここにリストされている多くのソフトウェアよりも優れています。
- 。だからよ料金やセキュリティについて心配する必要はありません
- より強力ではないにしても、多くのソフトウェアと同じくらい洗練されており、多くのお金を要求します
- ユーザーです-フレンドリーで、ターミナルでの複雑な設定やコマンドの入力は必要ありません。インストールするとすぐに使用できるはずです。
GTKで開発されているため、あまり良くない部分があるかもしれません。そのため、自然のMACプログラムのように感じられない場合があります。その上、古いMACバージョンは少しバグがありました。しかし、私が現在使用している最新の3.19.2はうまく機能し、問題に遭遇したことはありません。
コメント
- また、インストールは簡単です。
brew cask install meld
回答
に付属の差分ツールdiv id = “ae088c955f”>
ベアボーンソフトウェアのテキストラングラーにはディレクトリ比較がありますが、両方のディレクトリにあるファイルと各ディレクトリにあるファイルのみが表示されます。ボタンをクリックするだけで変更を1行ずつマージすることで編集できる両方のファイル。ただし、ファイルを移動することはできません。これは外部で行う必要があります(たとえば、Finderを介して)。
無料のオプションの1つとして優れていると思います。
回答
フォルダ同期を使用 Mac App Store それは本当にうまく機能します。
回答
私は大きなフォルダ構造(DVD)を比較してきました過去に、これを行うためのコマンドラインユーティリティを開発しました。最近、ユーティリティ(CrcCheckCopy)を無料でクロスプラットフォーム(MacOSおよびWindows)にしました。
CrcCheckCopyはソースフォルダをスキャンして作成します。すべてのファイルのCRCスタンプを含むファイル。次に、このファイルを使用してターゲットフォルダを比較します。
ここから取得できます: https://www.starmessagesoftware.com/crccheckcopy フィードバックをお待ちしております。
回答
変更アプリ($ 37.19)は以前は私のものでしたこのためのrkforce。 「BeyondCompare」と同じくらい優れています。
注:このQAが存在することを許可したいと思いますが、製品を売り込むための少なくともSOの基準に反しています。 macOS用の使いやすく直感的なグラフィックディレクトリ比較ツールの必要性は依然として深刻です。オープンソースの候補者は、商用ツールが提供する使いやすさのレベルに達していません。
回答
Pythonの実行方法を知っている場合、これは、2つのディレクトリを効率的に比較するために少し前に書いたスクリプトです。
機能:
- ツリー構造とファイルの変更(ファイルサイズに基づく)を比較できます& 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")
注:iCloudに移動されたファイルまたはサブディレクトリでは機能しません。
回答
最も簡単解決策:同期するDropboxなどを使用してファイルを作成し、WindowsでWinMergeを使用するだけです。
Xcodeに付属のFileMergeユーティリティは、フォルダを比較せず、マージ/編集も行いません。
コメントを残す