ディレクトリに多くのファイルがあり、その中に予想されるファイルのリストがあります。
例: 私が持っているファイルは次のとおりです。
- ファイル1
- ファイル2
- ファイル3
予想されるファイルは
- ファイル1
- ファイル2
- ファイル4
私はディレクトリをテストしたいと思い、file4がディレクトリにないことがわかりました。
ベストアンサー1
ファイル名を含む配列があり、ディレクトリに存在しないファイルを見つけるには、配列を繰り返してファイルが存在することを確認します。 (すべての種類の一般的なファイル-f
テスト)-e
files=(file1 file2 file4)
for f in "${files[@]}" ; do
[ -f "$f" ] || echo "$f: not found"
done
その逆も似ていますが、二重ループが必要な場合、または配列を連想配列に切り替える必要があります。ダブルループを使用してください。
files=(file1 file2 file4)
for f in * ; do
found=0
for g in "${files[@]}" ; do
[ "$f" = "$g" ] && found=1
done
[ "$found" = 0 ] && echo "$f: in directory but not listed"
done