[解決済み] シェルスクリプトでワイルドカードを使用してファイルが存在するかどうかを確認する【重複
2022-03-16 08:19:45
質問
あるファイルが存在するかどうかを、ワイルドカードを使ってチェックしようとしています。以下は私の例です。
if [ -f "xorg-x11-fonts*" ]; then
printf "BLAH"
fi
ダブルクォーテーションなしでも試してみました。
どのように解決するのですか?
Bashスクリプトの場合、最も直接的でパフォーマンスの高い方法があります。
if compgen -G "${PROJECT_DIR}/*.png" > /dev/null; then
echo "pattern exists!"
fi
これは、何百万ものファイルがあるディレクトリでも非常に高速に動作し、新しいサブシェルは必要ありません。
最もシンプルなのは
ls
の戻り値(ファイルが存在しない場合は0以外を返します)。
if ls /path/to/your/files* 1> /dev/null 2>&1; then
echo "files do exist"
else
echo "files do not exist"
fi
をリダイレクトしました。
ls
を出力して、完全に無音にしました。
同じくグロブ展開に依存する最適化であるが、これは
ls
:
for f in /path/to/your/files*; do
## Check if the glob gets expanded to existing files.
## If not, f here will be exactly the pattern above
## and the exists test will evaluate to false.
[ -e "$f" ] && echo "files do exist" || echo "files do not exist"
## This is all we needed to know, so we can break after the first iteration
break
done
と非常に似ています。 grok12さんの回答 しかし、リスト全体の不要な反復を避けることができます。
関連
-
文字列 null with space エラー: 二項演算子が期待されています。
-
[解決済み] シェルスクリプトで NULL 値と文字列を比較する際に単項演算子が期待される
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] シェルスクリプトでYYYY-MM-DD形式の日付にする
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] シェルスクリプトで部分文字列を別の文字列に置き換える
-
[解決済み】CSSでclassにワイルドカード*を使用する場合
-
[解決済み】シェルスクリプトでコメントをブロック化する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] タブを区切り記号として指定するカットコマンド【閉じた状態
-
linux shell script cannot be executed, error syntax error near unexpected token `$'\r'' solution.
-
linux awkコマンド詳細説明
-
[解決済み] ファイルにechoコマンドで書き込み、追記するには?
-
[解決済み] Dockerコンテナの強制終了
-
[解決済み】Bashでglobにマッチするものがあるかどうかをテストする
-
[解決済み】2つのファイルに共通する行を検索するシェルコマンド
-
[解決済み] wc -l "でファイル名を表示せずに行数だけを表示させるには?
-
[解決済み] zshでALT+LeftArrowKeyの解決策を探しています。
-
[解決済み] sed 全単語検索と置換