8

在Linux命令行中查找空目录

 1 year ago
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.
neoserver,ios ssh client

在Linux命令行中查找空目录

2022-10-25 13:01:36
仅仅列出空目录并不是我们的目的,我们今天了解一下如何删除这些空的目录。
d8eec1518cf6f3ab360856d756c9e9d1c55711.jpg

在 Linux 系统中,出现空的目录这是很正常的事情,而且,也是有办法一次性把它们都找出来的。

但是,仅仅列出空目录并不是我们的目的,我们今天了解一下如何删除这些空的目录。

在Linux中查找空目录

查找空目录,可以使用 find 命令,再结合其 -empty 选项,如下所示:

find /home/sagar/Files -type d -empty
471e864545642f06d56684a7e31ac870c3711b.jpg

上述命令中,-type d 选项要求只列出目录。

查找空文件

我们上文刚刚提到,-type 选项后面跟 d 参数是搜索目录,将 d 改为 f 即可搜索文件。

find /home/sagar/Files -type f -empty
765517c43d50c2448ac167f51d184e7a746ed4.jpg

find 是一个很好用的命令,如果有兴趣了解更多,可参考我们先前的文章:

关于 find 命令的15个超级有用的例子

使用 find 命令删除空文件和目录

使用 find 命令检索出结果,然后再使用 -delete 选项即可将其删除。比如,删除空目录,可参照如下命令:

find /home/sagar/Files -empty -type d -delete
27d511595bab6a92a65126a81190560355c8b5.jpg

使用 xargs 和 find -exec 命令删除空文件和目录

find 和 exec 命令的结合可以让我们执行自定义操作,比如对搜索结果运行脚本和执行程序。

而 xargs 可以从标准输入中获取输入,甚至可以将另一个命令的输出视为输入,并将其用作命令。

我们先来看一下 find -exec 命令。使用该命令删除空文件,如下所示:

find /home/sagar/Files -type f -empty -print0 -exec rm -v "{}" \;
448fbf8654250d3e55a17153e8b1a7caba83e5.jpg

删除空的目录,可使用如下命令:

find /home/sagar/Files -type d -empty -print0 -exec rmdir -v "{}" \;
721c2b39969aec38de4677a9ec86cc660e7d7e.jpg

使用 xargs 命令的方式,如下所示:

find /home/sagar/Files -type d -empty -print0 | xargs -0 -I {} /bin/rmdir "{}"
07ffffe32967fef73ce098a46d420bf543c268.jpg

然后,对上述命令做稍微的调整,可删除空文件:

find /home/sagar/Files -type f -empty -print0 | xargs -0 -I {} /bin/rm "{}"

59f882943ece88757b196765c47569fdaac291.jpg

关于 xargs 命令,我们先前介绍过一篇文章,大家感兴趣的也可以参考:

​https://www.51cto.com/article/721220.html​

责任编辑:庞桂玉 来源: TIAP

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK