是否可以在 Unix 中使用单个命令检查目录是否存在,如果存在则删除?有一种情况,我使用 ANT‘ sshexec’任务,在这种情况下,我只能在远程计算机中运行一个命令。我需要检查目录是否存在并删除它..。
试试:
bash -c '[ -d my_mystery_dirname ] && run_this_command'
如果您可以在远程机器上运行 bash,那么这将是有效的... ..。
在 bash 中,[ -d something ]检查是否存在名为“ something”的目录,如果存在并且是一个目录,则返回成功代码。使用 & & 链接命令只有在第一个命令成功时才运行第二个命令。因此,[ -d somedir ] && command仅在目录存在时才运行该命令。
[ -d something ]
[ -d somedir ] && command
为什么不用 rm -rf /some/dir呢?如果该目录存在,则删除该目录,否则不执行任何操作。与 rm -r /some/dir不同,如果文件夹不存在,这种命令风格不会崩溃。
rm -rf /some/dir
rm -r /some/dir
假设将 $WORKING_DIR设置为目录... ... 这个一行程序应该这样做:
$WORKING_DIR
if [ -d "$WORKING_DIR" ]; then rm -Rf $WORKING_DIR; fi
(否则只需用您的目录替换)
这里还有另一句话:
[[ -d /tmp/test ]] && rm -r /tmp/test
我建议打开 Rm命令的文档。 如果打开,你会看到 -f标志做你想要的
-f