頻繁に移動するいくつかのフォルダを含むフォルダがあるため、そのフォルダが存在するかどうかを確認し、存在しない場合は生成するスクリプトを作成しました。これが私がしたことです。 (私の考えでは)達成できるようです。
if [ ! -f "$DIR/0folder" ]
then
mkdir "$DIR/0folder"
fi
しかし、0folder
すでにそこにいるのに、まだmkdir
私に言おうとしています。ここのように。
mkdir: /Allfoldersgoeshere/subfolder/0folder: File exists
なぜ?すでに存在しているので無視する必要がありますか?
ベストアンサー1
テストで-f
次のことを確認しています。FILE
存在し、通常のファイルです。。あなたが必要とするのは、-d
次のことをテストすることです。FILE
存在し、ディレクトリです。
if [ ! -d "$DIR/0folder" ]
then
mkdir "$DIR/0folder"
fi
ただし、ディレクトリが存在することを確認する必要はありません。マニュアルページによると、mkdir
次のことがわかります。
man mkdir | grep -A1 -- -p
-p, --parents
no error if existing, make parent directories as needed
しかし、FILE
存在し、通常のファイルです。 mkdir -p
失敗するだろう
mkdir: /Allfoldersgoeshere/subfolder/0folder': Not a directory.
この場合、file
ディレクトリを作成する前に予想されるaを処理する必要があります。directory