如何判断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
测试:
知识点补充:
1)、如何查看隐藏文件?
使用ls -A
2)、`find "$fold_name" ! -type d` 中的感叹号表示什么?
表示否定,即搜索除文件夹之外的所有内容,搜索时排出文件夹。