Linux如何删除所有空目录?

时间:2020-01-09 10:41:36  来源:igfitidea点击:

您可以使用称为cleanlinks的程序。

cleanlinks程序在当前目录后的目录树中搜索目标不存在的符号链接,然后将其删除。
然后,它将删除该目录树中的所有空目录。
它最初是为基于符号链接的目录创建的,但也适用于普通目录。

例如,如果要从/tmp目录中删除所有空目录,请执行以下命令:

$ cd /tmp
$ cleanlinks

请注意,cleanlinks命令是XFree86项目的一部分。
另一种方法是在脚本中使用Shell命令的组合:

#/bin/bash
DIR=""
[ -d $DIR ] && [ $(ls -l $DIR | wc -l) -eq 1  ] && rmdir $DIR ||  :

保存并执行脚本:

$ script.sh dir1

您也可以尝试使用tmpreaper命令,该命令以递归方式搜索并删除在给定的秒数内没有被访问的文件和空目录。
通常,它用于清理用于临时存放空间的目录,例如/tmp。
语法如下:tmpreaper TIME-FORMAT DIRS

其中:

  • TIME-FORMAT:定义删除文件的年龄阈值。 TIME-FORMAT应该是一个数字,默认为小时,可以选择后缀一个字符:d表示天,h表示小时,m表示分钟,或s表示秒。
  • DIRS:目录名称,例如/tmp

例如,删除在24小时之前访问的所有文件:

tmpreaper 24h /tmp

请注意,默认情况下未安装tmpreaper命令,您可能需要使用apt-get或rpm命令安装它。