整理的一些linux find的常用命令
find的格式如下:
find pathname -option [-print] [ -exec or -ok] command {} \;
#-print 将查找到的文件输出到标准输出
#-exec command {} \; 将查到的文件执行cmd操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
常用的选项:
-name filename #按指定文件夹下查找filename find . -name *.txt 注:'*.txt'则会查找隐藏文件夹中的文件
-type f/d/c/l/b/p #查普通文件、目录、字符设备、链接符号、块设备、管道
-perm 744 #查找文件权限为744的文件
以下几个多用在日志查找上
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -mmin -n +n
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前 -amin -n +n
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -cmin -n +n
find /etc -name passwd -exec grep root {} \;
例子:
1. 查询目录下的所有文件;
find . -type f -exec ls -lt {} \;
2. 在/opt/work/log目录中查找更改时间在15日以前的文件并删除它们:
find /opt/work/log -mtime +15 -exec rm -rf {} \;
3. 查询当天修改过的文件
find ./ -type f -mtime -1 -ecec ls -lt {} \;
4. 查找磁盘中大于3M的文件
find . -size +300k -exec ls -ld {} \;
5. 将find出来的东西拷到另一个地方
find *.c -exec cp '{}' /bak ';'