回答:
Linuxの場合:
$ diff -r /first/directory /second/directory
Windowsの場合:WinMergeをダウンロードしてインストールした方がよいでしょう。
> WinMerge /r c:\first\folder c:\second\folder
M
Beyond Compareは優れた商用ツールで、30ドル程度です。Windowsで実行され、評価版があります。http://www.scootersoftware.com/
Diffは通常2つのファイルを比較するために使用されますが、それ以上のことができます。でdiff
ある彼のオプション「R」と「Q」それは再帰的かつ静かに動作させる、唯一の言及違い、これは我々が探しているものばかりです。
diff -rq todo_orig/ todo_backup/
どちらのディレクトリにも存在しない可能性のあるファイルの違いも確認したい場合:
diff -Nrq dir1/ dir2/
およびを使用することもできます。のために:Rsync
find
find
find $FOLDER -type f | cut -d/ -f2- | sort > /tmp/file_list_$FOLDER
ただし、同じ名前で同じサブフォルダーにあるが、内容が異なるファイルはリストに表示されません。
GUIのファンなら、Meldをチェックしてください。WindowsとLinuxの両方で正常に動作します。
DiffMerge for Windowsは、サブフォルダーを含む違いをウィンドウに表示します。どこかにポータブル版もありますが、クイック検索で次のダウンロードが明らかになりました:http : //www.softpedia.com/get/System/File-Management/SourceGear-DiffMerge.shtml
PowershellのCompare-Objectsコマンドレットを使用してこれを作成しました。
#set the directories
$firstdirectory = Read-Host "What is the first directory you wish to compare?" $seconddirectory = Read-Host "What is the second directory you wish to compare?"
#Check if the user wants to compare subdirectories
$recursivesearch = Read-Host "Do you wish to compare subdirectories? Please enter yes or no." If ($recursivesearch -eq "yes")
#get the contents
{ $firstdirectorycontents = @(Get-ChildItem $firstdirectory -Recurse) $seconddirectorycontents = @(Get-ChildItem $seconddirectory -Recurse ) }
else { $firstdirectorycontents = @(Get-ChildItem $firstdirectory) $seconddirectorycontents = @(Get-ChildItem $seconddirectory) }
#compare the objects and handle errors
if ($firstdirectorycontents.Count -eq 0 )
{
Write-Host "No files were found in the first directory, the directories cannot be compared."
}
elseif ($seconddirectorycontents.Count -eq 0)
{
Write-Host "No files were found in the second directory, the directories cannot be compared."
}
else
{
try
{
Compare-Object -ReferenceObject $firstdirectorycontents -DifferenceObject $seconddirectorycontents
}
catch {"Another error occured."} }