ファイルは同じですが、内容が異なる2つのディレクトリがあります。私はそれらの他のファイルをリストしたいと思います。例えば
File1、file2、file3などのファイルを含む2つのフォルダFolder1とFolder2があります。フォルダ1のファイル2は、フォルダ2のファイル2と同様ではない。
したがって、私のコマンドはfile2をリストする必要があります。
どうすればいいですか?
答え1
ディレクトリを次のものと比較できますdiff
。
$ diff -qr dirA dirB
Only in dirB: file.txt
Files dirA/README and dirB/README differ
答え2
私はこの目的のための特別なツールがあると確信しています(fdupes
私はそれを考えました)、次の簡単なスクリプトがこれを行う必要があります。
#!/usr/bin/env sh
if [ "a$1" = a -o "a$2" = a ]
then
echo Directory name missing.
echo Exiting
exit 1
fi
for i in "$1"/*
do
filename=$(basename "$i")
diff "${1}/${filename}" "${2}/${filename}" > /dev/null 2>&1
if [ "$?" -eq 1 ]
then
echo "$filename" is different
fi
done
exit 0
diff
バイナリが必要です$PATH
(おそらく持っているでしょう)。使用法:
$ ./diff.sh Folder1 Folder2
7 is different
file2 is different
答え3
解決策1:
そこに行って見ることができます:https://askubuntu.com/questions/111495/how-to-diff-multiple-files-across-directories特にRinzwindの答えは直接できると規定していますdiff -qr Folder1 Folder2
。
他の解決策は、結果をマージしたい場合にのみ便利です。
解決策2: GUIアプリケーションを実行できる場合の最善の解決策は、次のことです。フュージョンまたはkdiff3。
解決策3: 別の解決策は、バージョン管理ソフトウェアを使用することです。たとえば、gitを使用すると、次のことができます。
$ cd Folder1
$ git init
$ git add .
$ git commit -m "First commit"
$ rm -rf *
$ cp -r /PATH/TO/Folder2/* ./
git status
その後、またはを使用してgit diff
違いを確認できます。このソリューションでは、まずバックアップを作成することをお勧めします。rm -rf *
ドットファイルを削除しないように注意してください。
解決策4:
最後に、このプラグインを見てくださいvim
(まだ試していません)。https://github.com/will133/vim-dirdiff。のプラグインも存在すると確信していますEmacs
。