別のディレクトリではなく、直接 1 つのディレクトリにあるファイルを検索する Unix コマンドは何ですか? ファイル名だけが重要です。
ありがとう。
答え1
この検索を上位のディレクトリから実行したいと想定しています。その場合は、-path
のオプションを使用できますfind
。
例えば、以下のディレクトリ構造の場合
+---dir1/test1.txt
|
|--dir2/test1.txt
dir1で'test*'に一致するファイルを検索するには、
find -path '*dir1*' -iname 'test*'
答え2
2 つのディレクトリを比較するには、次のようにします。
diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort)
これを 1 つの方法のみで実行し、ファイルのリストを生成するには、次を試してください。
diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"
これが適切に機能するには、$dir1 と $dir2 のどちらにも末尾のスラッシュを含めないでください。