Linux find
Linux find
1.1搜索文件
find [path] [options] [expression]
find中对于时间的推算均为:
到...为止用+号,从......开始用-号,一个时间单位内的不带符号;
数字代表往前偏移量;
当前到往后的一个时间单位为基准0;-0就是下限单位;+0就是上限单位。
1.2path:
目录路径,系统从该路径开始沿着目录树向下查找文件。
是一个路径列表,相互用空格分开,如果不写Path,默认是当前目录
如:find a b -name '*a*',a,b为两个目录
1.3参数
1.3.1-depth
从指定目录下最深层的子目录开始查找
由上层到下层查找
find a -name '*a*'
由下层到上层查找
find a -depth -name '*a*'
1.3.2-mindepth levels和-maxdepth levels
查找深度为2的所有文件目录及其子文件目录,a为深度0
find a -mindepth 2 -name '*a*'
最大深度
find a -maxdepth 2 -name '*a*'
最小深度和最大深度
find a -mindepth 0 -maxdepth 2 -name '*a*'
1.3.3-mount
不在其它文件系统的目录和文件中查找,如(Msdos、Vfat)
1.3.4-amin n(n为分钟)
查找指定时间曾被存取过的文件或目录
如下只能查找出当前时间3分钟前的那一分钟内存取过的文件或目录,2分钟前或4分钟前的查找不出
find a -amin 3
如下查找一小时(60分钟)内被存取过的文件
find a -amin -60
1.3.5-anewer file/path
查找比指定文件或目录的修改时间更接近现在的文件或目录
find a -anewer ./a/aa
1.3.6-atime n(n为24小时)
n=0为24小时内,n=1为24小时至48小时,如下查找24小时内修改过的文件或目录
find temp -atime 0
1.3.7-cmin/-cnewer/-ctime/-mmin/-newer/mtime
参数同-amin/-anewer/-atime,差别参考如下:
atime:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;
ctime:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;
mtime:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等;
1.3.8-empty
查找文件大小为0Byte或目录下没有任何子目录或文件的空目录
find a -empty
1.3.9-exec
查找完成后执行命令,{}为查找到的文件或目录,分号必须有
find a -name '*.txt*' -exec mv "{}" "{}.bak" \;
1.3.10-iname
与-name类似,忽略大小写
find aa -iname '*A*'
1.3.11-regex <范本样式>
指定字符串作为寻找文件或目录的范本样式,与整个路径匹配,用.*表示任意长度字符串
find aa -regex '.*a.*'
find aa -regex 'aa.*bb.*[a,b,c]'
find aa -regex '^aa.*bb.*[a,b,c]$'
1.3.12-user <用户名>
查找符合指定的拥有者名称的文件或目录
find /home -user test
1.3.13-type <文件类型>
查找符合指定文件类型的文件
find aa -type d
b:块设备文档
d:目录
c:字符设备文档
P:管道文档
l:符号链接文档
f:普通文档
1.3.14-size <文件大小>
查找指定大小的文件
查找大小为0k的文件
find aa -size 0k
查找大小在0~4k的文件
find aa -size +0k -size -4k
1.3.15-version或--version
显示find的版本
find -version
find (GNU findutils) 4.4.2
...