在 Linux 中删除目录的 5 个示例

举报
Tiamo_T 发表于 2021/12/20 08:19:21 2021/12/20
【摘要】 问题:如何在 Linux 中删除空目录、包含文件的目录和子目录?另外,如何有效地为 rm 和 rmdir 命令使用别名?

问题:如何在 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 命令错误地删除了文件?你是如何处理这种情况的?在下面的评论部分与我们分享您的故事。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。