查找不包含子目录的目录

纳特·库普(Nat Kup)

我写的脚本是ksh。需要直接在当前目录下查找仅包含文件而不包含子目录的所有目录名。

我知道我可以ls -alR对第一个字段(d对于目录)中的第一个字母使用输出并对其进行递归解析我认为这awk是解析和查找的最佳方法。

例如,ls -al当前目录中的一个简单输出:

   drwxr-xr-x  22 af      staff    748 18 Mar 22:21 .
   drwxr-xr-x   5 root    admin    170 17 Mar 18:03 ..
   -rw-------   1 af      staff      3 17 Mar 16:37 .CFUserTextEncoding
   drwxr-xr-x   5 af      staff    170 17 Mar 17:12 Public
   drwxr-xr-x   9 af      staff    306 18 Mar 17:40 Sites
   -rw-------   1 af      staff      3 17 Mar 16:37 textd
   …

此输出中有2个目录:PublicSites该目录Public不包含子目录,但是包含子目录Sites中有3个子目录Sites因此,我只需要回显其中不包含目录的目录。就我而言,这仅仅是Sites

布鲁斯·埃迪格(Bruce Ediger)

您根本不需要使用awk使用提供的内置测试,ksh如下所示:

#!/bin/ksh

for NAME in *
do
    FOUND=no
    if [[ -d $NAME && $NAME != '.' && $NAME != '..' ]]
    then
        for SUBNAME in $NAME/*
        do
            if [[ -d $SUBNAME ]]
            then
                FOUND=yes
                break
            fi
        done
        if [[ $FOUND == no ]]
        then
            echo Found only files in $NAME
        fi
    fi
done

这个小脚本将查找当前目录中的所有目录,并告诉您它们是否仅包含文件,而不包含子目录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章