免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2010 | 回复: 5
打印 上一主题 下一主题

一段关于文件find的shell [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-14 14:46 |只看该作者 |倒序浏览
if ( -d $argv[1] ) then
    set OSNAME = `uname -s`
    if( $OSNAME == "HP-UX" ) then
            set FILE_CNT = `find $argv[1] -type f -name "$argv[2]" -a ! -path "$argv[1]/*/$argv[2]" | wc -l`    else
        set FILE_CNT = `find $argv[1] -maxdepth 1 -mindepth 1 -type f -name "$argv[2]" | wc -l`
    endif
endif

$argv[1] :文件目录
$argv[2] :文件名

两个find有什么不同?请多指教

论坛徽章:
0
2 [报告]
发表于 2011-03-14 15:03 |只看该作者
主要是这句的set FILE_CNT = `find $argv[1] -type f -name "$argv[2]" -a ! -path "$argv[1]/*/$argv[2]" | wc -l`的后半部分不明白。


-a ! -path 起什么作用?

论坛徽章:
0
3 [报告]
发表于 2011-03-14 15:04 |只看该作者
回复 1# ilwmin


    能执行吗?

论坛徽章:
0
4 [报告]
发表于 2011-03-14 15:07 |只看该作者
回复 3# wtuter

在我目前的环境上两句执行都没有问题。

论坛徽章:
0
5 [报告]
发表于 2011-03-14 16:50 |只看该作者
-a是逻辑并的意思吧
! -path 应该是排除掉后面的路径吧

论坛徽章:
0
6 [报告]
发表于 2011-03-14 17:11 |只看该作者
! -path  和 -maxdepth 1 -mindepth 1 起相同的作用

可以去掉参数-mindepth 1吧,仅仅要-maxdepth 1就OK了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP