find命令用来在指定目录下查找文件。find命令的功能强大,命令也较为复杂,虽然经常使用,可能也只用到了其中的
一部分,这里做一个笔记,经常翻阅一下,加强记忆。
find . 列出当前目录及其子目录下的所有文件和文件夹。
find /home -name "*.sql" 在/home目录下查找所有以.sql结尾的文件
find /home -iname "*.sql" 在/home目录下查找所有以.sql结尾的文件,忽略大小写
find /home -path "*config*" 匹配文件路径或者文件,也就是在/home目录下查找所有路径包含config的路径,
或者文件名包含config的文件。
根据文件类型搜索,linux下的文件类型参数有:
f 普通文件
l 链接文件
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
根据时间戳进行搜索,linux下的文件有三种时间戳:
-atime/-amin:访问时间,也就是最近一次访问的时间。
-mtime/-mmin:修改时间,文件最后一次修改时间。这里专指文件的内容。
-ctime/-cmin:变更时间,文件的数据元最后一次变化的时间。这里的数据元可能包含:权限、名称,所属用户等等。
find /home -type f -atime 0 搜索今天被访问过的所有普通文件
find /home -type f -atime 1 搜索昨天被访问过的所有普通文件
find /home -type f -atime +1 搜索1天前被访问过的所有普通文件
find /home -type f -atime -30 搜索30天内被访问过的所有普通文件
根据大小size查找文件
find /usr -type f -size -100M 搜索小于100M的所有普通文件
find /usr -type f -size +100M 搜索大于100M的所有普通文件
find /usr -type f -size 100M 搜索等于100M的所有普通文件
根据用户查找文件
find /etc/apache2 -type l -user root 搜索/etc/apache2目录下root用户拥有的所有链接文件
find /etc/apache2 type f -group www 搜索/ect/apache2目录下www用户组拥有的所有普通文件
查找文件后授权
find /etc/apache2 -type f -user apacheuser -exec chown wwwuser {} \; 搜索/etc/apache2目录下apacheuser 拥有的所有
普通文件,并把所有权更改为wwwuser用户。
查找文件后删除
find /usr -type f -size -100M -delete 删除/usr目录下所有小于100M的普通文件