前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux小技巧:使用find命令来删除空文件

Linux小技巧:使用find命令来删除空文件

作者头像
王云峰
发布2023-10-23 10:32:57
2960
发布2023-10-23 10:32:57
举报
文章被收录于专栏:Yunfeng's Simple Blog

在某个目录下有很多代码创建的空文件,分布在不同层级的子目录中,我们有没有办法可以快速地全部把它们删掉呢?

find是Linux系统中的一个强大的命令,通过它我们可以找到空文件,然后将它们进行删除。

TL;DR 最终命令如下:

代码语言:javascript
复制
find . -type f -size 0 -print -delete

几个参数详细的说明见下。

-type表示匹配项的文件类型,d表示文件夹,f表示文件,l表示软链接等,完整的类型如下:

代码语言:javascript
复制
b: block (buffered) special

c: character (unbuffered) special

d: directory

p: named pipe (FIFO)

f: regular file

l: symbolic link; this is never true if the -L option
 : or the -follow option is in effect, unless the
 : symbolic link is broken.  If you want to search for
 : symbolic links when -L is in effect, use -xtype.

s: socket

所以下面的命令只会列出当前目录下的所有文件:

代码语言:javascript
复制
find . -type f

-size用来进行文件和目录的大小判断,例如-size 6c表示大小等于6字节,-size -6c表示小于6字节,-size +6c表示大于6字节,大小单位包括:c:字节,w:双字节,k:1024字节,M:10241024字节,G:10241024*1024字节,不加单位的话,等于b:512字节:

代码语言:javascript
复制
# 寻找当前目录下大小为0的文件或目录
find . -size 0

# 寻找当前目录下小于512字节的文件或目录
find . -size -1

# 寻找当前目录下大于1字节的文件或目录
find . -size +1c

# 寻找当前目录下大于1M的文件或目录
find . -size +1M

有了这个选项,就能很容易地过滤出当前目录下的空文件了:

代码语言:javascript
复制
find . -type f -size 0

另一个选项是-delete,它的作用是直接删除找到的文件。

还有一个选项是-print,即打印匹配的文件路径到标准输出。

结合这几个选项,我们就能删除当前目录下的所有空文件,并且在删除时打印文件名:

代码语言:javascript
复制
find . -type f -size 0 -print -delete
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档