質問: linuxの2つのディレクトリの違い 私は1つのディレクトリに存在するファイルを見つけようとしていますが、他のディレクトリにはありません、私はこのコマンドを使用しようとしました:diff -q dir1 dir2 dir1にないがdir2にあるファイルとdir2にないdir1にあるファイルの両方を検出する上記のコマンドの問題、ファイルをdir1で検索しようとしていますが、dir2のみでは検索できません。ここに私のデータがどのように見えるかの小さなサンプルがありますdir1 dir2 dir3 1.txt 1.txt 1.txt 2.txt 3.txt 3.txt 5.txt 4.txt 5.txt 6.txt 7.txt 8.txt 私のもう1つの質問は、単一のコマンドでdir1またはdir2でなくdir3でファイルを見つける方法です。
回答: gnu grepはオプション-vで検索を逆にすることができます。これによりgrepは行を報告しますが、一致しません。これによってdir2のファイルのリストからdir1のファイルを削除することができます。grep -v -f -x -f <(find dir2 -type f -printf '%p\n') <(find dir1 -type f -printf '%p\n') オプション-f -xは、行全体で文字列検索を実行するようにgrepに指示します。