ご存知のように、ファイルを確認する方法はこんな感じです。
[[ -f /var/scripts_home/orig_create_DB_files_1.46.38 ]] && echo file exist
ただし、ファイルに名前 - "が含まれている場合は、ファイルが存在するかどうかを確認する方法データベースファイルの生成」
私はこれを試しましたが、うまくいきません
[[ -f /var/scripts_home/*create_DB_files* ]] && echo file exist
または
partial_file_name=create_DB_files
[[ -f /var/scripts_home/*$partial_file_name* ]] && echo file exist
答え1
for name in *create_DB_files*; do
if [ -f "$name" ]; then
printf 'at least one file exists (%s)\n' "$name"
break
fi
done
つまり、関連する名前を一致させ、そのうちの1つが通常のファイルであることを確認します(見つかったらループを終了します)。
答え2
これは、ファイルを見つけることができるすべての柔軟性を使用して、名前の一部に基づいてファイルが存在するかどうかをテストしますfind
。
find . -name '*create_DB_files*' -printf 1 -quit | grep -q 1
-type f
通常のファイルに制限の一致を追加することを検討したり、ファイルの-mtime
日付を一致させたり、-maxdepth 1
検索を現在のディレクトリに制限したりする場合などが考えられます。
if
上記は次のコマンドで組み合わせることができます。
if find . -name '*create_DB_files*' -printf 1 -quit | grep -q 1
then
echo found
else
echo Not found
fi