find命令查找单个文件

find查找目录-name查找名称其中查找名称可以包含文件名,目录名等,也可以是正则表达式;

如下命令,查找当前目录.所有名为Makefile的文件

[root@localhost redis-6.2.10]# find . -name Makefile
./Makefile
./deps/Makefile
./deps/hdr_histogram/Makefile
./deps/hiredis/Makefile
./deps/linenoise/Makefile
./deps/lua/Makefile
./deps/lua/etc/Makefile
./deps/lua/src/Makefile
./src/Makefile
./src/modules/Makefile
./tests/modules/Makefile

同时find命令支持正则表达式,在记不住某个文件具体的名称时,可以尝试一下正则表达式。

诸如模糊记得redisbench关键字linux运维面试题,查找对应的文件命令如下

[root@localhost redis-6.2.10]# find . -name redis*bench*
./src/redis-benchmark.c
./tests/integration/redis-benchmark.tcl

依照文件属性查找

查找名称为src的所有目录

[root@localhost redis-6.2.10]# find . -type d -name src
./deps/jemalloc/src
./deps/jemalloc/test/src
./deps/lua/src
./src

-type指定如下不同的属性:

字符涵义

普通文件,例如源码文件

directory目录的首字母

link软联接

块文件

字符文件

查找775权限的普通文件

参数命令错误_linux find命令参数_cs1.6鼠标参数命令

[root@localhost redis-6.2.10]# find . -type f -perm 775
./deps/hiredis/test.sh
./deps/jemalloc/autogen.sh
./deps/jemalloc/build-aux/config.guess

后面也可以使用非!字符linux find命令参数,表示完全相反的结果

find . -type f ! -perm 775

表示不仅里面以外的所有文件集合。

查找文件内容

有时侯须要查找某一类文件下边是否包含一些字符串linux游戏,例如查找.h文件上面16384这个字符串定义在那里,可以使用如下命令

[root@localhost redis-6.2.10]# find . -name "*.h" -exec grep -rin '16384' {} -H ;
./src/cluster.h:8:#define CLUSTER_SLOTS 16384

可以看见显示出linux find命令参数,16384这个字符串出现在./src/cluster.h文件对应的第8行。

具体命令句型如下:

find PATH OPTIONS -exec command {} ;

其中-exec参数表示须要执行前面的命令;{}表示find上面匹配到的文件,里面命令表示匹配到的以.h结束的文件,一般是C、C++语言的头文件;;表示exec须要执行的命令结束;-H表示复印出文件对应的路径./src/cluster.h.

按照文件大小查找

find命令查找固定大小的文件查找文件大小为25k的所有文件

find / -size 25k

find命令按照文件大小进行查找如下命令查找小于50M大于100M的文件内容

[root@localhost redis-6.2.10]# find / -size +50M -size -75M;
/boot/initramfs-0-rescue-90ed5856874646f8a1a55cd0e215e036.img
/root/code/gdb/gdb-8.0.1/gdb/gdb
/var/lib/rpm/Packages
/usr/local/bin/gdb

这个功能可以常见拿来删掉服务器里面的日志例如删掉日志文件小于512M的命令

[root@localhost test]# dd if=/dev/zero of=test.log bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,0.221883 秒,4.8 GB/秒
[root@localhost test]# ls -lh
总用量 1.0G
-rw-r--r--. 1 root root 1.0G 5月  13 15:33 test.log
[root@localhost test]# find . -type f -name "*.log" -size +512M -exec rm {} ;
[root@localhost test]# ll
总用量 0

按照文件更改时间

近来一个小时文件数据更改的时间

[root@localhost test]# find / -mmin -60

具体的几个参数涵义如下:

参数名涵义

atimen

linux find命令参数_cs1.6鼠标参数命令_参数命令错误

近来n个小时访问文件

aminn

近来n分钟访问文件

ctimen

近来n小时文件状态信息的更改,主要是inode节点信息

cminn

近来n分钟文件状态信息的更改,主要是inode节点信息

mtimen

近来n小时,文件内容的更改

mmimn

近来n分钟,文件内容的更改

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复