Linux下find命令在目录结构中搜索文件,并执行指定的操作。
find命令:
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
3.命令参数:
1)pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
2)-print: find命令将匹配的文件输出到标准输出。
3)-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ { } \;注意{ }和\;之间的空格。
4)-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
4.命令选项:
1)-name 按照文件名查找文件。
a)find ./ -name test 查找当前目录下文件名为“test”的文件
b)find . -name ‘test*‘ 查找当前目录下文件名包括“test”的文件
2)-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
b——块(512字节); c——字节; w——字(2字节);
k——千字节 ; M——兆字节; G——吉字节。
a)find ~ -size +100k 查找比100k大的文件
b)find ~ -size -100k 查找比100k小的文件
c)find ~ -size 100k 查找比100k的文件
3)-prem根据文件权限查找文件
a)find -perm -g=w 找到具有组读权限的文件
4)-type 查找某类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
a) find . -type d 查找文件类型为目录的文件
5)根据文件时间来查找
Linux文件系统中每一个文件都有三种时间戳:
a)访问时间(-atime):用户最近一次访问文件的时间;
b)修改时间(-mtime):文件内容最后一次被修改的时间。
c)变化时间(-ctime):文件元数据(metadata,例如权限或所有权)最后一次改变的时间。
-atime,-mtime,-ctime作为时间参数,单位是天。可以使用+表示大于,-表示小于(和根据文件的大小查找中的+,-相同)。
我们在这里只针对-mtime举例子了,其他两个时间戳也是一样的。
1.find ./ -mtime +3 查找大于3天前修改过的文件
2.find ./ -mtime -3 查找小于3天内修改过的文件