shell脚本判断指定目录是否有文件

发布时间:2020-10-17编辑:脚本学堂
本文介绍了shell脚本判断指定目录是否有文件的方法,shell脚本的小例子,需要的朋友参考下。

如何判断linux shell目录是否为空目录是否有内容是否包含文件?

linux系统中如何判断指定目录下是否有文件(包括隐藏文件和符号链接)?
脚本名:decide_blank_folder.sh
 

复制代码 代码示例:

#!/bin/sh 
# whether the specified folder has files,including symbolic file and hidden file 
# www.jb200.com

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` 中的感叹号表示什么?
表示否定,即搜索除文件夹之外的所有内容,搜索时排出文件夹。