判断指定目录是否有文件

linux 中如何判断指定目录下是否有文件(包括隐藏文件和符号链接)呢?

脚本名:decide_blank_folder.sh

脚本内容:

#!/bin/sh
# whether the specified folder has files,including symbolic file and hidden file
is_blank_dir_yes=2
is_blank_dir_no=5
isHasFileInDir()
{
        result3=`find "$1" ! -type d`
        if [ x"$result3" == x"" ];then
                return 1
                # has no file
        else
        echo "$this_dir"
                return 3
                # has file(s)
        fi
}

is_blank_folder_compl()
{
        local fold_name="$1"
        ls "$fold_name" >/dev/null 2>&1
        if [ $? -ne 0 ];then
                return 4
                # has no this folder
        fi
        local result=`ls -A "$fold_name"`
        if [ x"$result" == x"" ];then
                return $is_blank_dir_yes
                # is blank
         else
                for i in `find "$fold_name" ! -type d`;do
                        return $is_blank_dir_no
                done
                #init_bool=5

                return $is_blank_dir_yes
         fi
}

if [ -z "$1"  ];then
    echo "no argument";
        exit 255
fi

is_blank_folder_compl "$1"
retval=$?
echo "return value: $retval"
if [ $retval -eq $is_blank_dir_yes ];then
        echo "has no file(s)"
else
        if [ $retval -eq $is_blank_dir_no ];then
                echo "has file......."
        fi
fi

 

测试如下:

[root@localhost test]# ./decide_blank_folder.sh abc/

return value: 2

has no file(s)

 

知识点补充:

(1)如何查看隐藏文件?

使用ls -A

 

(2)`find "$fold_name" ! -type d` 中的感叹号表示什么?

表示否定,即搜索除文件夹之外的所有内容,搜索时排出文件夹。

 

你可能感兴趣的:(linux,shell,目录是否为空,是否包含文件,目录是否有内容)