在我们之前的一篇文章中,我们解释了如何在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 {} +
你也可以使用find和xargs ; 在以下语法中, -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中文件和目录管理的有用文章:
在本文中,我们向您展示了如何在Linux上递归查找和删除目录。 如果您想要添加到此主题中的任何问题或其他想法,请使用下面的评论部分。