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

是否可以在 Unix 中使用单个命令检查目录是否存在,如果存在则删除?有一种情况,我使用 ANT‘ sshexec’任务,在这种情况下,我只能在远程计算机中运行一个命令。我需要检查目录是否存在并删除它..。

195342 次浏览

试试:

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

如果您可以在远程机器上运行 bash,那么这将是有效的... ..。

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

为什么不用 rm -rf /some/dir呢?如果该目录存在,则删除该目录,否则不执行任何操作。与 rm -r /some/dir不同,如果文件夹不存在,这种命令风格不会崩溃。

假设将 $WORKING_DIR设置为目录... ... 这个一行程序应该这样做:

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

(否则只需用您的目录替换)

这里还有另一句话:

[[ -d /tmp/test ]] && rm -r /tmp/test
  • & & 意味着只有在前面的 语句成功执行(返回的退出代码为零)

我建议打开 Rm命令的文档。 如果打开,你会看到 -f标志做你想要的