2011-01-30 64 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 

(否则只是你的目录代替)

相关问题