在 Linux 中删除目录的 5 个示例
问题:如何在 Linux 中删除空目录、包含文件的目录和子目录?另外,如何有效地为 rm 和 rmdir 命令使用别名?
答:可以使用rmdir命令删除空目录,或者使用rm命令删除有内容的目录。删除可以交互、递归、强制或通过别名完成。在本文中,让我们了解 5 个实际示例,展示如何在类似 Linux 的系统中删除目录。
1. 如何删除空目录?
rmdir 命令将删除空目录。即没有任何子目录或文件的目录。
rmdir DIRNAME
为了确保您正在删除一个空目录,您应该使用 rmdir 命令。如果该
目录中有任何文件/目录,它将显示以下错误。
$ rmdir test
rmdir: failed to remove `test': Directory not empty
2. 如何在 Linux 中删除嵌套的空目录?
使用选项 -p,删除嵌套目录,如下所示。
$ rmdir -p dir1/dir2/dir3
注意:不要对目录如何嵌套并且也为空感到恐慌。它在您调用命令时嵌套,但它首先删除最内部的目录,并将下一级目录设为空,然后删除该目录。它继续这样做。
该命令rmdir -p DIR1 / DIR2 / DIR3相当于
$ rmdir dir1/dir2/dir3 dir1/dir2 dir1
3. 删除有内容的目录(即有文件和子目录的目录)
有时您可能想要删除其中包含内容的目录。您可以使用 rm 命令来完成,如下所示。
$ rm -rf DIRNAME
这将删除包含所有文件和子目录的目录。当您不小心使用它时,这是非常危险的,因为您无法轻松恢复这些文件。所以强烈建议你在执行rm -rf命令之前要注意并三思而后行。
4. 交互删除:早期避免在 rm 中使用 -f。
如果您曾经不小心错误地执行了 rm -rf,您可能需要认真考虑使用 -i 选项以交互方式删除文件和文件夹,如下所示(尤其是在 root 下)。
以递归方式和交互方式删除目录。
# rm -ir DIRNAME
以交互方式删除文件。
# rm -i FILENAME
如果您是 Linux 新手,请不要在 root 中使用 -f 选项,直到对命令行非常熟悉。相反,尝试使用 -i 选项,如上所示。
5. 有用的 rm 和 rmdir 别名
您可以使用别名将交互式 rm 选项设为默认 rm 命令,如下所示。
使 rm 交互的别名
# alias rm="rm -i"
在使用 rm 命令时,它会一直执行 rm -i 并在删除任何文件之前要求确认。但是请注意,当您提供 -f 选项时,即使您有 -i 选项,您也不会收到交互式提示。
例如,在下面的命令中 -i 没有任何作用。
$ rm -irf DIRNAME
在这种情况下,上述命令(带有 rm 别名)等效于以下命令。
$ rm -rf DIRNAME
以下所有 rm 选项都有效并且具有相同的功能。即递归和强制删除。
- rm -fr
- rm -rf
- rm -r -f
- rm -f -r
使 rm 变得冗长的别名
如果您希望 rm 或 rmdir 打印它正在做什么,那么您可以使用传统的详细选项。
alias rm="rm -v"
alias rmdir="rmdir -v"
注意:通过将别名命令添加到 ~/.bash_profile(或)~/.bashrc 文件来使此设置永久化。
您可以使用 rm 和 rmdir 命令删除文件或目录,空的或非空的,嵌套的或单个的。但是在调用命令之前要三思而后行,因为一旦错误删除了文件,将很难恢复它。
您是否曾经使用 rm 或 rm -r 命令错误地删除了文件?你是如何处理这种情况的?在下面的评论部分与我们分享您的故事。
- 点赞
- 收藏
- 关注作者
评论(0)