rmdir

我在 rm 命令中提到删除一个文件夹需要用 -rf flag,准确地说 rm -rf 里面的 r 代表递归,在这里的作用就是先删除该文件夹下的所有文件(夹),最后再删除空的文件夹本身。这种递归的思想对于编写低时间复杂度的程序非常重要,一个教科书般的例子就是 Merge Sort,它通过迭代可以实现 O(n·logn) 的时间复杂度,相较于冒泡排序,其速度上有非常明显的提升。

回归正题,rmdir 命令的作用是删除文件夹。那么问题来了,既然 rm 命令就能实现删除任何文件夹(不管是否为空)的功能,那为什么我在这里还要专门写一个 rmdir 条目呢?

真实原因

避免删库跑路的悲剧……

删除这个操作在 Linux 下被认为是“不可逆”的,所以执行删除命令时需要格外小心。rmdir 这个命令存在的意义就在于,如果你要删除一个你确信的空文件夹,那么 rmdir 会在执行删除操作之前验证这个文件夹是否真的为空,这就避免了一下子手抖输错,或是按 tab 自动填充错误而造成的误删整个重要文件夹的操作。

$ rmdir my-important-files/
rmdir: my-important-files/: Directory not empty

results matching ""

    No results matching ""