在运行一个非常消耗资源的find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会话费很长的时间(譬如30G以上的文件系统)。当然你也可以把它调到前台执行,看着满屏的数据不断翻滚,
find——用于在文件树中查找文件,并作出相应的处理。
1 . 命令格式:
find pathname -options [-print -exec -ok]
2 . 命令参数:
pathname: find 命令所查找的目录路径。譬如用 . 来表示当前目录,用 / 来表示系统根目录。
3 . 命令选项:
-name 按照文件名查找文件
-size n[cwbkMG] : 档案大小 为 n 个由后缀决定的数据块。其中后缀含义为:
b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b)
c: 表示字节数
k: 表示 kilo bytes (1024字节)
w: 字 (2字节)
M:兆字节(1048576字节)
G: 千兆字节 (1073741824字节)
-perm 按照文件权限来查找文件
-prune 使用这一选项可以使find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,那 -prune 将被 find 命令忽略
-user 按照文件属主来查找文件
-group 按照文件所属的组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件, - n 表示更改时间距现在 n 天以内, + n 表示文件更改时间距现在 n 天以前。
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后 n*24 小时访问的文件
-cmin n 查找系统中最后 N 分钟被改变文件状态的文件
-ctime n 查找系统中最后 n*24小时被改变文件状态的文件
-mmin n 查找系统中最后 N 分钟被改变文件数据的文件
-mtime n 查找系统中最后 n*24 小时被改变文件数据的文件
-type 查找某一类型的文件,诸如:
b 块设备文件
d 目录
c 字符设备文件
p 管道文件
l 符号链接文件
f 普通文件
基于目录深度的搜索
参数:
-maxdepth:指定最大查找深度,即最大向指定目录下面搜索maxdepth级
-mindepth:指定最小查找深度,即从指定目录下面第mindepth级目录开始搜索
find ./ -mindepth 2 -name "f*"
[root@ccd-sdv6 ~]# find ./ -maxdepth 3 -name *.log
./.cache/gdm/session.log #表示当前目录一级、cache第二级、gdm第三级;最大寻找第三级下面的。
[root@ccd-sdv6 ~]# find ./ -maxdepth 2 -name *.log
[root@ccd-sdv6 ~]#
4 . 使用实例:
find -atime -2 查找48小时内修改过的文件
find . -name "*.log" 在当前目录查找以 .log 结尾的文件。 “.” 代表当前目录
find /opt/soft/test -perm 777 查找/opt/soft/test 目录下, 权限为 777 的文件
find . -type f -name "*.log" 查找当前目录中以 .log 结尾的 普通文件
find ./ -size +10c 查找文件size大于10个字节的文件或目录
find ./ -size -10k 查找文件size小于10k的文件或目录