LINUX find 命令怎么才能只找当先目录下的文件而不找子目录下的相同文件

小弟目录如下
/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 只查找当前目录下的文件