欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

判断指定目录是否有文件 博客分类: unixlinux命令 linuxshell目录是否为空目录是否有内容是否包含文件 

程序员文章站 2024-02-24 20:55:22
...

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` 中的感叹号表示什么?

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