Windows系统中,有个查找的操作,微软为了满足Windows用户的零基础入门,人性化的图形用户界面使得好多的操作都可以通过鼠标的点击来完成,所以包括查找在内的好做操作都显得不是那么重要,我们平常也很少用到它们。
如下:
在计算机文件系统中有个查找输入框,我们可以依据文件名、修改时间等等去查找。
在Linux中,查找这个操作比较重要,查找这个操作通过find
命令来完成
用法
find pathname -options [-printf -exec -ok ...]
参数:
pathname
: 所查找的目录的路径options
: 查找规则选项,如按文件名、所属组、时间戳、文件类型查找[-printf ...]
: 查找完成后进行的操作
Linux中有超过20种find命令的查找规则选项,下面是几种常用的选项:
按照文件名查找
find -name filename
: 按照文件名查找,但区分大小写(精确查找)
find -iname filename
: 按照文件名查找,但不区分大小写
也可以根据关键字查找:
find -name "*.c"
: 查找后缀为.c
的文件。
按照文件时间戳查找
find -mtime n
:查找n天以前的那一天修改的文件。
find -mtime +n
:查找n天以前的那一天之前修改该的文件。
find -mtime -n
:查找n天以前的那一天之后修改该的文件。
除此之外,还可以按照ctime
(改变时间)、atime
(访问时间)、单位为分钟的(amin
、cmin
、mmin
)来查找,格式与上面一样。
按照文件大小查找
find -size n
: 查找大小为nk的文件。
find -size +n
: 查找比nk大的文件。
find -size -n
: 查找比nk小的文件。
其他文件大小的单位:
b——块(512字节)。
c——字节。
w——字。
k——千字节。
M——兆字节。
G——吉字节。
按照文件类型查找
find -type 文件类型
linux下的文件类型:
文件类型 | 类型参数 |
---|---|
普通文件 | f |
符号文件 | l |
目录 | d |
字符设备 | c |
块设备 | b |
套接字 | s |
Fifo(管道文件) | p |
其它查找方法:
-group gname
: 查找所属组为gname的文件-user username
: 按文件属主来查找-perm
: 按照文件权限查找-perm
:按执行权限来查找-empty
:查找空文件或文件夹-nogroup
: 查无有效属组的文件,即文件的属组在/etc/groups中不存在
--nouser
: 查无有效属主的文件,即文件的属主在/etc/passwd中不存-newer f1 !f2
: 找文件,-n指n天以内,+n指n天以前-ctime -n +n
: 按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup
: 查无有效属组的文件,即文件的属组在/etc/groups中不存在-nouser
: 查无有效属主的文件,即文件的属主在/etc/passwd中不存-newer f1 !f2
: 查更改时间比f1新但比f2旧的文件-depth
: 使查找在进入子目录前先行查找完本目录-fstype
: 查更改时间比f1新但比f2旧的文件-mount
: 查文件时不跨越文件系统mount点-follow
: 如果遇到符号链接文件,就跟踪链接所指的文件-cpio
: 对匹配的文件使用cpio命令,将他们备份到磁带设备中-prune
: 忽略某个目录
逻辑查找(搭配正则使用)find -name "*.c" or "test*"
: 查找后缀为.c
,或前缀为test
的文件find -name "*.c" and "test*"
: 查找后缀为.c
,而且前缀为test
的文件find -name "*.c" not "test*"
: 查找后缀为.c
,而且前缀不为test
的文件