2011-01-30 31 views
48

是否可以在Unix中使用單個命令檢查目錄是否存在並刪除(如果存在)?我有使用ANT'sshexec'任務的情況,我可以在遠程機器上只運行一個命令。我需要檢查,如果目錄存在,並將其刪除...檢查目錄是否存在並在一個命令中刪除unix

+0

爲什麼不使用命令rmdir?如果該目錄不存在,它將失敗。 – Ferruccio 2011-01-30 22:43:50

+1

它會失敗。和我的ANT腳本中的錯誤。這會導致我的構建崩潰。 – remo 2011-01-30 22:53:32

+0

使用`mkdir -p`會忽略錯誤,如果它已經存在。 – user562374 2011-01-30 23:29:22

回答

86

爲什麼不直接使用rm -rf /some/dir?如果目錄存在,將刪除該目錄,否則不做任何事情。

22

嘗試:

bash -c '[ -d my_mystery_dirname ] && run_this_command' 

編輯:這將工作,如果你可以運行在遠程機器上的bash ....

編輯2:在bash中,[ -d something ]檢查是否存在名爲'something'的目錄,如果存在並且是目錄,則返回成功碼。僅當第一個命令成功時,鏈接命令與& &纔會運行第二個命令。所以[ -d somedir ] && command只有在目錄存在的情況下才運行命令。

25

假設$WORKING_DIR被設置到目錄...這一個班輪應該這樣做:

if [ -d "$WORKING_DIR" ]; then rm -Rf $WORKING_DIR; fi 

(否則只是你的目錄代替)

相關問題