[解決済み】シンボリックリンクが存在するかどうかを確認する方法
2022-04-02 11:11:58
質問
bashでシンボリックリンクが存在するかどうかをチェックしようとしています。以下は私が試したことです。
mda=/usr/mda
if [ ! -L $mda ]; then
echo "=> File doesn't exist"
fi
mda='/usr/mda'
if [ ! -L $mda ]; then
echo "=> File doesn't exist"
fi
しかし、これではうまくいきません。 もし'!'が抜けていたら、決してトリガーされません。また、'!'がある場合は、毎回トリガーされます。
解決方法は?
-L
は、"file" が存在し、シンボリックリンクであれば真を返します(リンク先のファイルは存在してもしなくてもかまいません)。あなたは
-f
(ファイルが存在し、通常のファイルである場合に真を返す)または、単に
-e
(タイプに関係なくファイルが存在すれば真を返す)。
によると
GNU マニュアルページ
,
-h
とは同一です。
-L
によると、しかし
BSDマンページ
使用しないでください。
-h file
ファイルが存在し、シンボリックリンクであれば真。 この演算子は、このプログラムの以前のバージョンとの互換性のために残されています。この演算子の存在に依存せず、代わりに -L を使用してください。
関連
-
[解決済み] 値がベースに対して大きすぎる(エラートークンは "08")[重複]
-
[解決済み] openstack の google-chrome-stable ubuntu12 パッケージが見つかりません。
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] ディレクトリへのシンボリックリンクを削除する
-
[解決済み] cURLでプログレスバーを表示しないようにするにはどうしたらいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] sed で二重引用符と単一引用符をエスケープするにはどうしたらいいですか?
-
[解決済み] echoコマンドでパイピングが効かない [重複]。
-
[解決済み] bash スクリプトを実行しているドッカーエントリーポイントが "パーミッション拒否" になる
-
npm err インストールエラーの解決策
-
[解決済み] IPアドレスのまとめ方
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] Bashスクリプトのset -o pipefailの意味を教えてください。
-
[解決済み] Bashのforeachループ