1、find定义.
find命令用于查找指定目录下的文件,同时也可以调用其他命令执行相应的操作。
2、find常见用法.
find path -option [-print] [-exec -ok command] {};
3、find命令参数.
path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-name
filename
#查找名为filename的文件
-perm
#按执行权限来查找
-user
username
#按文件属主来查找
-group
groupname #按组来查找
-mtime
-n +n
#按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime
-n
+n
#按文件访问时间来查GIN: 0px">
-ctime -n
+n
#按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup
#查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser
#查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1
!f2
找文件,-n指n天以内,+n指n天以前
-type
b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size
n[c]
#按文件大小查找
-depth
#使查找在进入子目录前先行查找完本目录
-fstype
#查更改时间比f1新但比f2旧的文件
-mount
#查文件时不跨越文件系统mount点
-follow
#如果遇到符号链接文件,就跟踪链接所指的文件
-cpio
%; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount
#查文件时不跨越文件系统mount点
-follow
#如果遇到符号链接文件,就跟踪链接所指的文件
-cpio
#对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune
#忽略某个目录
-amin # 查找在系统中最后N分钟访问的文件
-mmin # 查找在系统中最后N分钟里修改过的文件
实例
(1)find工具name参数案例,详解如下
find
/data/ -name “*.txt””:查找/data/目录以.txt结尾的文件
find
/data/ -name "[A-Z]*”:查找/data/目录以大写字母开头的文件
find
/data/ -name "test*”:#查找/data/目录以test开头的文件
(2)find工具-type参数案例,详解如下
fnd/data/ -type d:查找/data/目录下的文件夹
find/ data/ ! -type d:查找/data/目录下的非文件夹
find/data/- type l:查找/data/目录下的链接文件
find/data/ - type d |xargs chmod 755 -R:查找目录类型并将权限设置为755
find/data/- type f |xargs chmod 644-R:查找文件类型并将权限设置为644
(3)find工具size参数案例,详解如下
find /data/ -size +1M:查找文件大小大于1MB的文件
find /data/ -size 10M:查找文件大小为10MB的文件。
find /data/ -size -1M:查找文件大小小于1MB的文件。
(4)find工具-perm参数案例,详解如下:
Find /data/ -perm 755:查找/data/目录权限为755的文件或者目录
Find /data/ -perm -775:权限小于775的文件或目录
Find /data/ -perm +644:查找文件权限符号为644以上的文件
(5)find工具mime参数案例,详解如下
atime, access time:文件被读取或者执行的时间
ctime, change time:文件状态改变时间
mtime, modify time:文件内容被修改的时间
Find /data/ -mtime +30-name “*.log”:查找30天以前的log文件
Find /data/ -mtime -30 -name ““.txt”:查找30天以内的txt文件
Find /data/ -mtime 30 -name " *.txt":查找第30天的txt文件
find /data/ -mmin +30-name ".log”:查找30min以前被访问的log文件
find /data/ -amin -30-name ".log”:查找30min以内被访问的log文件
find /data/ -cmin
30-name ".log”:查找第30min改变的log文件
(6)find工具参数综合案例,代码如下
查找/data目录以,.log结尾,文件大于10KB的文件,同时/cp到/tmp目录
find /data/ -name "*. log” -type f -size
+10k -exec cp {}
/tmp/ ;
查我/data/目录以结尾,文件大于10kB的文件,权限为644并别除该文件
find /data/ -name “*.log” -type f -size +10k -m perm 644 -exec rm -rf {} ;
查找/data/目录以.log结尾,30天以前的文件,大小大于10并移动到/temp目录find /data/ -name " . log" -type f-mtine +30 -size +10M -exec mv {}
/temp/ \xargs: