检查目录是否存在,并在一个命令unix中删除

时间:2011-01-30 22:31:10

标签: unix

是否可以在Unix中使用单个命令检查目录是否存在并删除(如果存在)?我有使用ANT'ssshexec'任务的情况,我只能在远程机器中运行一个命令。我需要检查目录是否存在并删除它......

4 个答案:

答案 0 :(得分:100)

假设$WORKING_DIR设置为目录......这个单行应该这样做:

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

(否则只需替换你的目录)

答案 1 :(得分:97)

为什么不使用rm -rf /some/dir?如果该目录存在,则会删除该目录,否则不执行任何操作。

答案 2 :(得分:27)

尝试:

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

编辑:如果您可以在远程计算机上运行bash,这将有效....

编辑2 :在bash中,[ -d something ]检查是否存在名为“something”的目录,如果存在则返回成功代码并且是目录。使用&&amp ;;链接命令仅当第一个命令成功时才运行第二个命令。因此[ -d somedir ] && command仅在目录存在时才运行命令。

答案 3 :(得分:2)

这里是另一班轮:

[[ -d /tmp/test ]] && rm -r /tmp/test
  • &&表示仅在前面的语句之前执行以下语句 语句成功执行(返回退出代码为零)