问题描述
小弟目录如下 /home/mytest下面有4个包文件.zip,该目录下还有2011/02-2011目录这个目录下you同样的4个zip文件.问题:我用find . -name "*.zip" -print 查找,结果会打印出mytest 目录及子目录下的文件,我只想要4个可出来的是8个求解 怎么才能让只出来当前目录下的4个 问题补充:deepfuture 写道
解决方案
加个-maxdepth n参数指定查找最大深度就可以了find . -maxdepth 1 -name "*.zip" -print
解决方案二:
-xdev 只查找当前目录下的文件
解决方案三:
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的返回值必须为真-xdev 只查找当前目录下的文件选择参数-amin<时间> 指定时间内曾被存取过的文件,单位为分钟-anewer<文件或目录>-atime<24小时数> 如2=48小时,3=72小时,设置为3:72小时之前修改过的文件;+3:超过72小时之前修改过的文件;-3:72小时之内修改过的文件-ctime<时间> 等同于“-atime<24小时数>”-exec<命令> 执行指定的命令,但是find返回的值必须为真-ok<命令> 等同于“-exec<命令> ”-fls<文件> 将命令运行的结果保存到指定文件-fprint<文件> 将结果输出到指定的文件fstype<文件类型> 只查找指定文件类型的文件或者目录-group<群组> 查找属于指定群组的文件或目录-name<样式> 指定字符串作为搜索样式-szie<大小> 查找指定大小的文件 单位为字节-type<文件类型> 找找指定文件类型的文件-user<用户> 查找指定用户的文件或目录-printf<样式> 指定数--help 显示帮助信息--version 显示版本信息【文件类型】f :普通文件d :目录l :符号链接b :块设备c :字符设备p :管道文件s :Socket【常见表示】$HOME :主目录~ :主目录. :当前目录
解决方案四:
3、忽略某个目录如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:$ find /apps -path "/apps/bin" -prune -o -print4、使用find查找文件的时候怎么避开某个文件目录比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件find /usr/sam -path "/usr/sam/dir1" -prune -o -printfind [-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 -pruneelse -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