判断指定目录是否有文件

简介:

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

脚本名:decide_blank_folder.sh

脚本内容:

Shell代码   收藏代码
  1. #!/bin/sh  
  2. # whether the specified folder has files,including symbolic file and hidden file  
  3. is_blank_dir_yes=2  
  4. is_blank_dir_no=5  
  5. isHasFileInDir()  
  6. {  
  7.         result3=`find "$1" ! -type d`  
  8.         if [ x"$result3" == x"" ];then  
  9.                 return 1  
  10.                 # has no file  
  11.         else  
  12.         echo "$this_dir"  
  13.                 return 3  
  14.                 # has file(s)  
  15.         fi  
  16. }  
  17.   
  18. is_blank_folder_compl()  
  19. {  
  20.         local fold_name="$1"  
  21.         ls "$fold_name" >/dev/null 2>&1  
  22.         if [ $? -ne 0 ];then  
  23.                 return 4  
  24.                 # has no this folder  
  25.         fi  
  26.         local result=`ls -A "$fold_name"`  
  27.         if [ x"$result" == x"" ];then  
  28.                 return $is_blank_dir_yes  
  29.                 # is blank  
  30.          else  
  31.                 for i in `find "$fold_name" ! -type d`;do  
  32.                         return $is_blank_dir_no  
  33.                 done  
  34.                 #init_bool=5  
  35.   
  36.                 return $is_blank_dir_yes  
  37.          fi  
  38. }  
  39.   
  40. if [ -z "$1"  ];then  
  41.     echo "no argument";  
  42.         exit 255  
  43. fi  
  44.   
  45. is_blank_folder_compl "$1"  
  46. retval=$?  
  47. echo "return value: $retval"  
  48. if [ $retval -eq $is_blank_dir_yes ];then  
  49.         echo "has no file(s)"  
  50. else  
  51.         if [ $retval -eq $is_blank_dir_no ];then  
  52.                 echo "has file......."  
  53.         fi  
  54. 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` 中的感叹号表示什么?

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

相关文章
|
5月前
|
弹性计算 运维 Shell
判断文件或目录是否存在
【4月更文挑战第29天】
37 0
|
5月前
|
弹性计算 运维 Shell
遍历当前目录文件并执行检查
【4月更文挑战第30天】
35 0
if双份分枝判断是否有benet目录没有创建存在提示已经创建目录
if双份分枝判断是否有benet目录没有创建存在提示已经创建目录
32 1
|
Shell
判断目录 /tmp/jstack 是否存在,不存在则新建一个目录,若存在则删除目录下所有内容
每隔 1 小时打印 inceptor server 的 jstack 信息,并以 jstack_${当前时间} 命名文件,每当目录下超过 10 个文件后,删除最旧的文件。
71 0
|
Shell
判断目录 /tmp/jstack 是否存在,不存在则新建一个目录,若存在则删除目录下所有内容。
每隔 1 小时打印 inceptor server 的 jstack 信息,并以 jstack_${当前时间} 命名文件,每当目录下超过 10 个文件后,删除最旧的文件。
94 0
C#编程-112:文件夹操作之判断是否存在
C#编程-112:文件夹操作之判断是否存在
C#编程-112:文件夹操作之判断是否存在
|
网络协议 测试技术 Go
判断文件或目录存在 | 学习笔记
快速学习判断文件或目录存在
C#编程-22:判断文件是否存在并创建文件(夹)
C#编程-22:判断文件是否存在并创建文件(夹)
105 0
递归删除指定文件-目录
递归删除指定文件-目录
120 0
|
分布式计算 Hadoop 开发者
文件和文件夹的判断| 学习笔记
快速学习文件和文件夹的判断
227 0