删除旧目录,创建新的空目录

删除旧目录,创建新的空目录

单个 bash 命令>| foo创建一个空文件foo,无论该文件之前是否为非空、空或丢失。(如果它是只读的或目录,则失败。)

是否有类似的单个命令来创建空目录?如果目录之前就在那里,它应该可以工作或不, 空的或不。大致相同rm -rf fooDir; mkdir -p fooDir,但不违反“不要重复自己”。(如果目录或文件是只读的,失败是可以接受的。)

上下文是一个脚本,它创建一个目录来存储其输出,但会删除任何以前运行的输出。

答案1

我认为答案是:不。没有单一的命令可以满足你的要求,至少根据这两个链接:

我只能说,只需使用两个单独的命令即可。虽然这可能很丑陋且“不方便”,但 99% 可能是唯一的方法。

答案2

首先,找到一个空目录。没有普遍的这样做的方法有很多,但您可以自己制作一个,或者使用 找到可能的候选者find /var -type d -empty | xargs ls -ltd。例如,在 Ubuntu 14 上,/var/lib/ntpdate多年来一直空置。另一个安全的选择是/etc/ppp/resolv

然后单个命令是rsync -a --delete /var/lib/ntpdate/ fooDir。尾部斜杠很重要。不幸的是,如果没有通用的/dev/nullDir,这个解决方案可能会让新手感到困惑。因此,如果您的脚本必须多次执行此操作,那么首先创建然后将其与 rsync 一起使用是值得的/tmp/emptyDir

相关内容