linux find 命令用法总结

1. 用法

格式find pathname -options [-print -exec -ok...]

pathname表示find命令所查找的文件或目录的路径。例如:/home/tools/user

options是find命令支持的选项,常见的选项如下所示:

选项 含义
-name   filename             查找名为filename的文件
-perm                             按执行权限来查找
-user    username            按文件属主来查找
-group groupname           按组来查找
-mtime   -n/+n/n                 按文件修改时间来查找文件,-n指n天以内,+n指n天以前
-atime    -n/+n/n                 按文件访问时间来查
-ctime    -n/+n/n                 按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-mmin    -n/+n/n 按修改时间查找,单位为分钟
-amin    -n/+n/n   按访问时间查找,单位为分钟
-cmin     -n/+n/n 按创建时间查找,单位为分钟
-nogroup                         查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                           查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer   f1 !f2                 找文件,-n指n天以内,+n指n天以前 
-ctime    -n +n               按文件创建时间来查找文件,-n指n天以内,+n指n天以前 
-nogroup                       查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                         查无有效属主的文件,即文件的属主在/etc/passwd中不存在
-newer   f1 !f2               查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        

按照文件类型查找。文件类型可以是:

d  目录文件;  l  符号链接(指向另一个文件,类似于瘟下的快捷方式) ; s  套接字文件;  b  块设备文件,二进制文件;  c  字符设备文件;   p  命名管道文件;   -  普通文件,或更准确地说,不属于以上几种类型的文件。

-size      n[c]                 查长度为n块[或n字节]的文件
-depth                          使查找在进入子目录前先行查找完本目录
-fstype                         查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f         查是块设备、目录、字符设备、管道、符号链接、普通文件
-size      n[c]                查长度为n块[或n字节]的文件
-depth                         使查找在进入子目录前先行查找完本目录
-fstype                       查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                       查文件时不跨越文件系统mount点
-follow       如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                           查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                       查文件时不跨越文件系统mount点
-follow                        如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                           对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune                      

忽略某个目录

-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \; 。其中,{} 花括号代表前面find查找出来的文件名;{}和\;之间要有空格;该命令实际上以“;”来结尾的,“;”前面的“\”是转义字符。举例如下:

find .  -type f  -mtime +14 -exec rm {} \;

find ./temp -name  *xml -exec "cp" {} /data/user/new \;

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

 

2. 示例

 

find / -type f -atime - 1 查找一天内被访问过的文件。
find /root/ -name "*.txt"  查找/root/目录下以.txt结尾的文件。
find /root/ -type d -name "test*  查找/root/目录内名字以test开头,文件类型type为目录的文件。
find / -type f -amin - 10 查10分钟内被访问过的文件。
find / -type f -cmin - 10 -cmin +5 查10分钟内,5分钟之前被创建的文件。
find / -type f -mtime -1 查找一天内更改过的文件。
find / -type f -mtime +1 查找一天前更改过的文件。
find / -type f -ctime - 1 查找一天内更改过(文件内容/大小/权限)的文件。
find / -type f -mmin -60 -exec mv{} {}.bak \;查找60分钟内更改过的文件再将其重命名。
find / -type f -size +10M -exec ls -lh {} \; 查找大于10M的文件并列出。

 

参考:https://www.cnblogs.com/tongyan2/p/5517085.html

http://blog.51cto.com/3069201/2053682

你可能感兴趣的:(linux)