if [ ! -d /home/dir ]; then
mkdir /home/dir
fi
ある日、友人と私はクラスでこの質問を受けました。私たちは両方とも異なる答えをしました。しかし、私はその友人に私が正しいかもしれないことを証明したかったのです。
彼は、「/home/dirディレクトリが存在しない場合にのみ作成する」と言います。
いいえと言いました。 "/home/dir ディレクトリを削除して再作成する"
誰が正しいですか? …それとも私たち全員が間違っていますか?
答え1
あなたの友人はほぼ正しいです。スクリプトは、/home/dir
まだディレクトリでない場合にのみ生成されます。 (他の場合はmkdir
実行されますが失敗します。)
[
テストを紹介します! -d /home/dir
。ここに存在し、ディレクトリであることを-d /home/dir
確認し、それを無効にします。すべてが/に含まれることは、まだディレクトリでない場合は実行中であることを意味します。/home/dir
!
if
then
/home/dir
mkdir /home/dir
具体的には、mkdir
すべてをもう少し簡潔に書いてください。
mkdir -p /home/dir
答え2
あなたの友人は正しいです。 「そうでなければディレクトリです」のように
しかし、彼に条件全体をキャンセルし、ただ書くことができると言ってください。mkdir -p /home/dir