+ -
当前位置:首页 → 问答吧 → 一段关于文件find的shell

一段关于文件find的shell

时间:2011-03-14

来源:互联网

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有什么不同?请多指教

作者: ilwmin   发布时间: 2011-03-14

主要是这句的set FILE_CNT = `find $argv[1] -type f -name "$argv[2]" -a ! -path "$argv[1]/*/$argv[2]" | wc -l`的后半部分不明白。


-a ! -path 起什么作用?

作者: ilwmin   发布时间: 2011-03-14

回复 ilwmin


    能执行吗?

作者: wtuter   发布时间: 2011-03-14

回复 wtuter

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

作者: ilwmin   发布时间: 2011-03-14

-a是逻辑并的意思吧
! -path 应该是排除掉后面的路径吧

作者: l_penny   发布时间: 2011-03-14

! -path  和 -maxdepth 1 -mindepth 1 起相同的作用

可以去掉参数-mindepth 1吧,仅仅要-maxdepth 1就OK了

作者: dzm5566126com   发布时间: 2011-03-14