Linux/Unix:查找所有隐藏的点目录并删除
时间:2020-01-09 10:42:14 来源:igfitidea点击:
问题描述:
如何清理存储在nas服务器上的备份。
如何释放磁盘空间。
如何找出所有隐藏的点目录,例如/nas01/backups/home/user/.gnome/
、/nas01/backups/home/user/.gnome/
等,
然后一次删除就可以了使用Linux或者Unix命令行选项?
请注意,我不想删除嵌套的隐藏目录,例如/nas01/backups/home/user/data/.xml
、/nas01/backups/home/user/foo/bar/.level/.levle2/
等。
解决方法:
您可以使用find命令在Linux或者Unix系统上查找或者定位文件。
搜索是递归的,因为它将搜索所有子目录。
语法为:
find /path/to/search criteria action
以下是使用搜索条件和默认打印操作的示例find命令:
find /nas01/backups/home/user/ -name file-Name-here
要仅匹配目录,请使用:
find /nas01/backups/home/user/ -type d -name file-Name-here -print0
要仅匹配隐藏的点目录,请执行:
find /nas01/backups/home/user/ -type d -name ".*" -print0
要在命令行参数下方最多降级一级目录,请传递-maxdepth 1选项。
这将避免删除嵌套目录:
find /nas01/backups/home/user/ -maxdepth 1 -type d -name ".*" -print0
对结果满意后,使用xargs命令删除所有隐藏目录:
find . -maxdepth 1 -type d -iname ".[^.]*" -print0 | xargs -I {} -0 rm -rvf "{}"
或者
find . -maxdepth 1 -type d -iname ".*" -print0 | xargs -I {} -0 rm -rvf "{}"