小弟目录如下
/home/mytest下面有4个包文件.zip,该目录下还有2011/02-2011目录这个目录下you同样的4个zip文件.
问题:
我用find . -name "*.zip" -print 查找,结果会打印出mytest 目录及子目录下的文件,我只想要4个可出来的是8个
求解 怎么才能让只出来当前目录下的4个
加个-maxdepth n参数指定查找最大深度就可以了
find . -maxdepth 1 -name "*.zip" -print
3、忽略某个目录
如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。
如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:
$ find /apps -path "/apps/bin" -prune -o -print
4、使用find查找文件的时候怎么避开某个文件目录
比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件
find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [-path ..] [expression] 在路径列表的后面的是表达式
-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。
这个表达式组合特例可以用伪码写为
if -path "/usr/sam" then
-prune
else
-print
避开多个文件夹
find /usr/sam ( -path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o -print
圆括号表示表达式的结合。
\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。
查找某一确定文件,-name等选项加在-o 之后
#find /usr/sam (-path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o -name "temp" -print
find :查找目录或者文件
语 法
find[必要参数][选择参数]功 能find 命令:用于在文件树种查找文件,并作出相应的处理
类似命令: locate ls locatetedb xargs regex stat lstat printf file
相关教程: find 命令
执行权限: 超级用户 普通用户
命令属性: 文件管理
参数必要参数
-daystart 时间基准从当日算起
-prune 忽略某个目录
-depth 指定搜索顺序,从文件树的最子层目录查起
-empty 查找空文件或空目录
-false 设置成find命令返回值为false
-follow 不查找符号链接
-mount等同于“-xdev”,不进入其他文件系统查找
-noleaf 不考虑硬链接限制
-nouser 没有用户的文件
-nogroup 没有群组的文件
-print 将查找结果列到标准输出,但是find的返回值必须为真
[color=blue]-xdev 只查找当前目录下的文件[/color]
选择参数
-amin<时间> 指定时间内曾被存取过的文件,单位为分钟
-anewer<文件或目录>
-atime 如2=48小时,3=72小时,设置为3:72小时之前修改过的文件;+3:超过72小时之前修改过的文件;-3:72小时之内修改过的文件
-ctime<时间> 等同于“-atime”
-exec<命令> 执行指定的命令,但是find返回的值必须为真
-ok<命令> 等同于“-exec<命令> ”
-fls<文件> 将命令运行的结果保存到指定文件
-fprint<文件> 将结果输出到指定的文件
fstype<文件类型> 只查找指定文件类型的文件或者目录
-group<群组> 查找属于指定群组的文件或目录
-name<样式> 指定字符串作为搜索样式
-szie<大小> 查找指定大小的文件 单位为字节
-type<文件类型> 找找指定文件类型的文件
-user<用户> 查找指定用户的文件或目录
-printf<样式> 指定数
--help 显示帮助信息
--version 显示版本信息
【文件类型】
f :普通文件
d :目录
l :符号链接
b :块设备
c :字符设备
p :管道文件
s :Socket
【常见表示】
$HOME :主目录
~ :主目录
. :当前目录
-xdev 只查找当前目录下的文件