while - ubuntu shell script




僅當dir不存在時如何mkdir? (8)

mkdir在Windows 8+系統上不再支持-p切換。

你可以使用這個:

IF NOT EXIST dir_name MKDIR dir_name

我正在編寫一個shell腳本,以便在AIX上的KornShell(ksh)下運行。 我想使用mkdir命令來創建一個目錄。 但目錄可能已經存在,在這種情況下,我不想做任何事情。 因此,我想要測試以查看目錄不存在,或者抑制mkdir在嘗試創建現有目錄時拋出的“文件存在”錯誤。

任何想法如何最好地做到這一點?


使用-p標誌。

man mkdir
mkdir -p foo

嘗試mkdir -p

mkdir -p foo

請注意,這也會創建任何不存在的中間目錄; 例如,

mkdir -p foo/bar/baz

將創建目錄foofoo/barfoo/bar/baz如果它們不存在)。

如果您在父目錄不存在時想要出現錯誤,並且想要創建該目錄(如果該目錄不存在),則可以先test該目錄的存在:

[ -d foo ] || mkdir foo

如果您不想顯示任何錯誤消息:

[ -d newdir ] || mkdir newdir

如果你想顯示你自己的錯誤信息:

[ -d newdir ] && echo "Directory Exists" || mkdir newdir

用一個命令定義復雜的目錄樹

mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}

舊的嘗試和真實

mkdir /tmp/qq >/dev/null 2>&1

在許多其他解決方案都沒有的競爭條件下,你會做你想做的。

有時最簡單(和最醜陋的)解決方案是最好的。


這是一個簡單的函數(bash shell),它可以讓你創建一個目錄,如果它不存在。

#----------------------------------
# Create a directory if it doesn't exist
#------------------------------------
createDirectory() {
    if [ ! -d $1 ]
        then
        mkdir -p $1
    fi
}

你可以調用上面的函數:

createDirectory / tmp / fooDir / BarDir

上面創建了fooDir和BarDir(如果它們不存在)。 請注意遞歸創建目錄的mkdir命令中的“-p”選項。 希望這可以幫助。


directory_name = "foo"

if [ -d $directory_name ]
then
    echo "Directory already exists"
else
    mkdir $directory_name
fi






mkdir