浅谈find指令
1. find命令语法
find path -option [ -print ] [ -exec -ok command ]
其中,path是路径,即指令在path指定的路径下查找;-option是选项,常用的有-name等。
如:以下指令在/etc下查找名字为default的文件。
以下命令查找当前目录下的名字叫做file1的文件。
2. find命令的各种选项
2.1 -amin -n与 -atime -n
-amin -n 用于查找在过去n分钟内被读取过的文件。比如-amin -3,-amin -11等。
如:以下命令查找在当前目录下20分钟内读取过的文件。
和-amin -n 类似,-atime -n用于查找在过去n天内被读取过的文件。比如-amin -3,-amin -11等。
如:以下命令用于查找在当前目录下3天内被读取过的文件。
2.3 -cmin -n 与 -ctime -n
与以上两个指令类似,a为“access”,读取,c为“change”,修改。这两个命令用于查找在过去n分钟(n
天)内被修改过的文件。
以上四个指令中的 -20,-1,-3 等还可以换成“+20,+1,+3”,表示“超过20分钟(天),超过1分钟(天),
超过3分钟(天)”。
2.4 按文件大小查找 -size
以下指令查找/etc下大小小于2字节的文件。
2.5 -a(and) 与 -o(or)
可以用选项-a (and) 及选项-o (or) 来限定要查找的文件的大小范围:
以下指令查找大与16字节小于24字节的文件:
以下指令查找小于1字节或大于65536字节的文件:
不只是文件大小有关可以用,其他的也可以。比如我们查找名字叫testfile或5分钟内访问过的文件(当然实际很少会
这样用):
3.-name查找时使用通配符“*”及“?”
可以用星号“*”匹配文件名的多个字符,用问号“?”匹配文件名的一个字符。如果我们不想输入文件的全名,就可以使用通配符进行匹配。
如查找文件testfile时,可以这样:*t*。第一个*号可以匹配“test”,第二个*号可以匹配"ile"。还可以这样:????f???。前四个问号分别匹配
"t" "e" "s" "t",后三个问号分别匹配"i" "l" "e"。如下图所示:
4. 使用-iname不区分大小写查找
在当前目录下,我们有三个文件名相同,大小写不同的文件:
若不区分大小写查找,我们可以使用以下指令:
find ./ -iname testfile
再对比一下-name的查找: