特定の一括ファイルの存在/テスト[重複]

特定の一括ファイルの存在/テスト[重複]

_Bashには、下線で始まるいくつかのファイル名と、下線で始まらない他のファイル名を含むディレクトリがあります。

私のスクリプトでは、フォルダに.で終わらない項目があることを確認したいと思います_

if [[ -f $dir/[!_]* ]]
  then echo "There are unmarked files."
  else echo "All files marked."
fi 

ただし、で始まったり起動しないファイルを含むフォルダーで実行したりすると、_ステートメントがif意図したものと反対の効果を発揮します。なしでファイルを明確に表示するフォルダ内の項目を一覧表示します_が、出力は引き続き表示されます。All files marked.

私は何を見逃していますか?

ベストアンサー1

if find -not -name '_*' -exec false {} +
then
  echo 'all files marked'
else
  echo 'unmarked file found'
fi

おすすめ記事