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