良许Linux教程网 Linux命令大全 Linux系统查找大文件命令

Linux系统查找大文件命令

接触 Linux 的同学想必都知道这么一句话,Linux 系统中一切皆文件。在那么多文件中,如果我想找某一个文件,大家是不是觉得肯定不好找,那么多文件怎么找出想要的那个。如果你有这种想法,那么可真的小瞧 Linux 了,只有你想不到没有 Linux 做不到的,今天就为大家介绍一个在 Linux 中查找文件的命令。

find 是一个很强大的命令,很多时候,你需要了解当前系统下有哪些大文件,或者近期修改过的文件,又或者哪个以 .zip 结尾的压缩文件,find 都可以帮到你。那么如何把这些文件搜索出来呢?下来就教大家具体的使用方法。

关于 find 命令,Linux 中给出的介绍是:search for files in a directory hierarchy,也就是在目录层次结构中搜索文件。通俗点来说就是用于查找目录下的文件,同时也可以调用其他命令执行相应的操作。

语法格式:

find [-H] [-L] [-P] [-D debugpots] [-Olevel] [pathname] [expression]find [搜索路径] [选项] [搜索内容]

注意:find 命令以及后面的选项和路径、操作语句,每个元素之间都至少要有一个空格。还需要注意子模块的先后顺序。

在介绍 find 参数之前,先说一下

上面已经说过,find 是一个很强大的命令,因为它可以做的事情很多,所以相对应它的参数选项也比较多,这里为大家介绍几个比较常用的参数:

pathname:表示命令所需要查找的目录路径

Options 模块说明:

-depth:从指定的目录下最里深层的子目录开始查找

-maxdepth levels:表示找出系统中最大最深的目录级数,其中 levels 为自然数

Tests 模块说明:

-mtime [-n|n|+n]:按照文件的修改时间来查找文件(这个参数最常用),具体如下:

​ -n:表示更改文件的时间距现在 n 天以内

​ +n:表示更改文件的时间距现在 n 天以前

​ n:距现在第 n 天

-atime [-n|n|+n]:按照文件的访问时间来查找文件,单位为天

-ctime [-n|n|+n]:按照文件的状态改变时间来查找文件,单位为天

-amin:按照文件的访问时间来查找文件,单位为分钟

-cmin:按照文件的状态改变时间来查找文件,单位为分钟

-mmin:按照文件的修改时间来查找文件,单位为分钟

-group:按照文件所属的组来查找文件

-name:按照文件名来查找文件,只支持 *、?、[] 等特殊通配符

-user:按照文件属主来查找文件

-type:查找某一类型的文件

​ b(块设备文件)、c(字符设备文件)、d(目录)、p(管道文件)、l(符号链接文件)、f(普通文件)、s(socket 文件)

Actions 模块:

-delete:将查找出的文件删除

-exec:对匹配到的文件执行参数给出的 shell 命令

find 支持的逻辑运算符:

!:取反

-a:取两个条件的交集,全拼为 and

-o:取两个条件的并集,全拼为 or

以上就是关于 find 命令的常用参数,了解完之后,我们在举几个例子来说明:

  1. 按大小查找文件:
$ find / -size +100M  查找根目录下所有文件大小超过 100M 的文件
/root/123.txt
/root/etc.zip
/proc/kcore

验证一下:
$ ll -h 123.txt 
-rw-r--r--    1 root     root      109.6M Sep  7 11:26 123.txt
随便挑选上面的文件进行查看,可以看到大小是超过 100M 的
  1. 按照目录或者权限来查找文件:
$ find /etc -perm 755
查找在 /etc 目录下属主权限为 rwx,属组权限为 rx,其他权限为 rx 的文件
  1. 按照名字指定关键字查找
$ find /var/log -mtime +5 -name '*.log'
在 /var/log 目录下查找 5 天前以 '.log' 结尾的文件
  1. 使用 nouser 选项查找
$ find . -user nobody
查找用户为 nobody 的文件

$ find . -nouser
查找没有对应任何用户的文件
  1. 按照文件类型查找
$ find /tmp -type d
查找 /tmp 目录下文件类型为目录的文件

-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件

相信大家可以看出 find 是 Linux 系统中的一个非常强大的搜索命令,它可以根据文件名来搜索文件,还能根据文件的权限、文件的大小、还有文件的时间还是有 inode 号等等来搜索文件。需要大家明白的是:这个命令是直接通过在硬盘进行的搜索,所以当出现搜索范围过大的情况时,find 命令也会相应的耗费比较大的系统资源,造成服务器压力过大。因此我们在使用这个命令时,尽可能不要指定过于大的搜索范围。

以上就是关于 find 命令的相关使用,其实 find 命令的用法远远不止这些,大家可以多了解下上面的参数选项介绍,先要查找什么类型的文件,主要就是通过这些来作为辅助进行查找的。本文的介绍就到这里,如果感兴趣的话可以收藏关注哦!

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部