シェルスクリプト内にディレクトリが存在するかどうかを調べる
シェルスクリプト内で、ディレクトリが存在するかどうかを確認するために使用できるコマンドは?
3538
3
シェルスクリプト内で、ディレクトリが存在するかどうかを確認するために使用できるコマンドは?
シェルスクリプトでディレクトリが存在するかどうかを確認するには、次のようにします。
また、ディレクトリが存在しないかどうかを確認するには
しかし、Jon Ericsonが指摘しているように、ディレクトリへのシンボリックリンクもこのチェックを通過することを考慮しないと、その後のコマンドが意図したとおりに動作しないことがあります。 例)これを実行すると
を実行すると、エラーメッセージが表示されます。
そのため、後続のコマンドがディレクトリを想定している場合には、シンボリックリンクは別の方法で扱わなければならないことがあります。
この理由については、8jean氏が別の回答で説明しています。
変数にスペースやその他の異常な文字が含まれていると、おそらくスクリプトが失敗します。
なお、-dテストでは、意外な結果が出ることがあります。
ファイルを作成します。"When is a directory not a directory?" その答えは"When it's a symlink to a directory." もう少し徹底したテストを。
BashのマニュアルのBashの条件式や[
[
内蔵コマンド](https://www.gnu.org/software/bash/manual/bash.html#index-_005b)や[`[[`複合コマンド]](https://www.gnu.org/software/bash/manual/bash.html#index-_005b_005b)に詳しい情報があります。find`を使ったさらなる機能
サブディレクトリ内のフォルダの存在を確認します。
カレントディレクトリ内のパターンに基づいて、1つまたは複数のフォルダの存在を確認します。
両方の組み合わせ。次の例では、カレント・ディレクトリにフォルダが存在するかどうかをチェックします。