在Linux命令行中查找空目录
source link: https://www.51cto.com/article/721241.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
在Linux命令行中查找空目录
在 Linux 系统中,出现空的目录这是很正常的事情,而且,也是有办法一次性把它们都找出来的。
但是,仅仅列出空目录并不是我们的目的,我们今天了解一下如何删除这些空的目录。
在Linux中查找空目录
查找空目录,可以使用 find 命令,再结合其 -empty 选项,如下所示:
find /home/sagar/Files -type d -empty
上述命令中,-type d 选项要求只列出目录。
查找空文件
我们上文刚刚提到,-type 选项后面跟 d 参数是搜索目录,将 d 改为 f 即可搜索文件。
find /home/sagar/Files -type f -empty
find 是一个很好用的命令,如果有兴趣了解更多,可参考我们先前的文章:
关于 find 命令的15个超级有用的例子
使用 find 命令删除空文件和目录
使用 find 命令检索出结果,然后再使用 -delete 选项即可将其删除。比如,删除空目录,可参照如下命令:
find /home/sagar/Files -empty -type d -delete
使用 xargs 和 find -exec 命令删除空文件和目录
find 和 exec 命令的结合可以让我们执行自定义操作,比如对搜索结果运行脚本和执行程序。
而 xargs 可以从标准输入中获取输入,甚至可以将另一个命令的输出视为输入,并将其用作命令。
我们先来看一下 find -exec 命令。使用该命令删除空文件,如下所示:
find /home/sagar/Files -type f -empty -print0 -exec rm -v "{}" \;
删除空的目录,可使用如下命令:
find /home/sagar/Files -type d -empty -print0 -exec rmdir -v "{}" \;
使用 xargs 命令的方式,如下所示:
find /home/sagar/Files -type d -empty -print0 | xargs -0 -I {} /bin/rmdir "{}"
然后,对上述命令做稍微的调整,可删除空文件:
find /home/sagar/Files -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"
关于 xargs 命令,我们先前介绍过一篇文章,大家感兴趣的也可以参考:
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK