首页 热点资讯 义务教育 高等教育 出国留学 考研考公

shell脚本判断文件夹下是否有文件

发布网友 发布时间:2022-04-23 16:45

我来回答

6个回答

热心网友 时间:2022-04-12 00:06

search_dir=/tmp/test
include_subdir=1

if [ $include_subdir -eq 1 ]; then
    n=$(find $search_dir -type f -exec sh -c 'printf "%s\n" "$1"; kill "$PPID"' sh {} \; | grep -v "Terminated" | wc -l)
else
    n=$(find $search_dir -maxdepth 1 -type f -exec sh -c 'printf "%s\n" "$1"; kill "$PPID"' sh {} \; | grep -v "Terminated" | wc -l)
fi

结果 n 为 0 表示指定目录下面没有文件,否则有文件。如果不需要检查指定目录下的子目录,把 include_subdir 置为 0 即可。find 命令中较复杂的那部分是为了实现找到第一个文件时就停止查找,避免检查有大量文件的目录时影响性能。

热心网友 时间:2022-04-12 01:24

我们可以通过判断文件夹中的文件的列表是否为空来判断:

if [[ -n $(ls) ]]; then
    # Do something here
else
    # Do something else here
fi

热心网友 时间:2022-04-12 02:58

#!/bin/sh
DIRECTORY=$1
if [ "`ls -A $DIRECTORY`" = "" ]; then
echo "$DIRECTORY is indeed empty"
else
echo "$DIRECTORY is not empty"
fi

热心网友 时间:2022-04-12 04:50

  各位回复得都很好。吾补充如下:
dir=${HOME}/test
if [ -d ${dir} -a "`ls -A ${dir}`" != "" ]; then
echo "${dir} has files!"
fi
即:先判断有没有这个目录,再判断目录中有没有文件(或子目录)。

热心网友 时间:2022-04-12 06:58

#!/bin/sh
myFile="~/log/mylog.log"
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi

注意if里面的中括号的任意一个空格,具体可以参考shell 编程方面的书籍

热心网友 时间:2022-04-12 09:22

#/bin/bash
Dir=/test

Num=`ls -l $Dir | wc - l`

if [ num -eq 0 ];then
echo "no"
else
echo "yes”

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com