如何在Linux上递归搜索和删除目录

在这篇简短的文章中,我们将解释如何使用命令行工具在Linux文件系统中递归搜索和删除目录。

在我们之前的一篇文章中,我们解释了如何在Linux中查找占用文件系统最多磁盘空间的顶级目录和文件 如果您注意到此类目录不再包含重要文件和子目录(例如旧备份,下载等),则可以删除它们以释放磁盘空间。

另请参阅10个有用的du(磁盘使用情况)命令,用于查找文件和目录的磁盘使用情况

这个简短的教程描述了如何在Linux文件系统中递归查找和删除目录。

要实现上述目的,可以使用以下语法将find命令rm命令一起使用。 这里,末尾的+号表示可以同时读取多个目录。

$ find /start/search/from/this/dir -name "dirname-to-delete" -type d -exec /bin/rm -rf {} + 

注意 :您必须小心使用rm命令 ,因为它是在Linux中使用最危险的命令之一 :您可能会意外删除关键系统目录,从而导致系统故障。

在下面的示例中,我们将搜索名为files_2008的目录并以递归方式删除它:

$ $find ~/Downloads/software -name "files_2008" -type d -exec /bin/rm -rf {} + 

你也可以使用findxargs ; 在以下语法中, -print0 action允许在标准输出上打印完整目录路径,后跟空字符:

$ find /start/search/from/this/dir -name "dirname-to-delete" -type d -print0 | xargs -0 /bin/rm -rf "{}"

使用上面的相同示例,我们有:

$ find ~/Downloads/software -name "files_2008" -type d -print0 | xargs -0 /bin/rm -rf "{}"

最后但并非最不重要的是,如果您担心数据的安全性,那么您可能需要学习3种方法来永久安全地删除Linux中的“文件和目录”

不要忘记阅读更多有关Linux中文件和目录管理的有用文章:

  1. fdupes - 在Linux中查找和删除重复文件的命令行工具
  2. 如何使用'FSlint'工具在Linux中查找和删除重复/不需要的文件
  3. 除了一个或几个带扩展名的文件之外,删除目录中所有文件的3种方法

在本文中,我们向您展示了如何在Linux上递归查找和删除目录。 如果您想要添加到此主题中的任何问题或其他想法,请使用下面的评论部分。