shell 循环判断文件是否存在

在Linux系统中,我们可以使用shell脚本来循环判断某一目录下所有文件的大小,以下是一个简单的示例:

1、我们需要创建一个shell脚本文件,例如check_file_size.sh,并在文件中输入以下内容:

shell 循环判断文件是否存在

!/bin/bash
检查目录是否存在
if [ ! -d "$1" ]; then
    echo "目录不存在"
    exit 1
fi
遍历目录下的所有文件
for file in "$1"/*; do
     获取文件大小
    size=$(stat -c%s "$file")
     输出文件名和大小
    echo "文件名:$file,大小:$size 字节"
done

2、保存文件后,给予脚本执行权限:

chmod +x check_file_size.sh

3、运行脚本,传入要检查的目录作为参数:

./check_file_size.sh /path/to/your/directory

脚本将输出目录下所有文件的文件名和大小。

接下来,我们来了解一下这个脚本的工作原理。

1、!/bin/bash:这是一个shebang,用于指定脚本的解释器,在这个例子中,我们使用的是bash解释器。

2、if [ ! -d "$1" ]; then ... fi:这一部分是检查传入的参数是否为一个存在的目录,如果不是,脚本将输出错误信息并退出。

shell 循环判断文件是否存在

3、for file in "$1"/*; do ... done:这是一个for循环,用于遍历目录下的所有文件。"$1"/*表示传入的目录下的所有文件和子目录,在循环内部,我们对每个文件进行处理。

4、size=$(stat -c%s "$file"):这一行是获取文件的大小。stat -c%s "$file"命令会返回文件的大小(以字节为单位),我们将结果赋值给变量size

5、echo "文件名:$file,大小:$size 字节":这一行是输出文件名和大小,我们使用了echo命令来输出文本,其中$file$size分别表示文件名和大小。

通过以上步骤,我们就可以使用shell脚本来循环判断某一目录下所有文件的大小了。

相关问题与解答

问题1:如何只输出大于1MB的文件?

shell 循环判断文件是否存在

答:我们可以在循环内部添加一个条件判断,只有当文件大小大于1MB时才输出,修改后的代码如下:

!/bin/bash
检查目录是否存在
if [ ! -d "$1" ]; then
    echo "目录不存在"
    exit 1
fi
遍历目录下的所有文件
for file in "$1"/*; do
     获取文件大小
    size=$(stat -c%s "$file")
     判断文件大小是否大于1MB(1048576字节)
    if [ $size -gt 1048576 ]; then
         输出文件名和大小
        echo "文件名:$file,大小:$size 字节"
    fi
done

问题2:如何只输出特定类型的文件(如只输出图片文件)?

答:我们可以在循环内部添加一个条件判断,只有当文件类型符合要求时才输出,我们可以使用file命令来判断文件类型,修改后的代码如下:

!/bin/bash
检查目录是否存在
if [ ! -d "$1" ]; then
    echo "目录不存在"
    exit 1
fi
遍历目录下的所有文件
for file in "$1"/*; do
     获取文件类型(使用file命令)
    type=$(file -b --mime-type "$file")
     判断文件类型是否符合要求(如只输出图片文件)
    if [[ $type == image/* ]]; then
         获取文件大小并输出文件名和大小(略)
    fi
done

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/199108.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-05 02:45
Next 2024-01-05 02:45

相关推荐

  • Linux发行版的系统目录名称命名规则以及用途是什么

    Linux发行版的系统目录名称命名规则以及用途是什么?在Linux系统中,各个目录的命名规则和用途对于用户来说是非常重要的,了解这些规则有助于我们更好地使用和管理Linux系统,本文将详细介绍Linux发行版的系统目录名称命名规则以及它们的用途。基本目录结构Linux发行版的基本目录结构大致如下:/ 根目录├─bin 二进制文件目录,……

    2024-01-14
    0133
  • linux如何运行shell脚本

    在Linux系统中,运行Shell脚本有多种方法,本文将介绍两种常见的方法:使用./命令和使用sh或bash命令。1. 使用./命令运行Shell脚本这是最简单的方法,只需在终端中输入脚本的文件名(包括扩展名),然后按回车键即可,如果要运行名为script.sh的脚本,只需在终端中输入以下命令:./script.sh注意:在使用这种方……

    2024-01-20
    0198
  • linux i节点是什么

    在Linux操作系统中,每个文件或目录都有一个与之关联的i节点(inode),inode是文件系统中用于存储文件和目录元数据的一种数据结构,它包含了文件或目录的名称、权限、所有者、大小、创建时间、修改时间等信息,通过inode,我们可以了解文件或目录的状态,以及对它们进行操作。本文将详细介绍Linux中inode的概念、结构以及相关操……

    2023-12-14
    0187
  • python 判断文件存不存在

    在Python中,我们可以使用os模块的os.path.exists()函数来判断文件路径是否存在,这个函数接受一个参数,即文件路径,如果文件路径存在,则返回True,否则返回False,下面我们详细介绍一下如何使用这个函数,1、我们需要导入os模块:

    2023-12-18
    0104
  • linux删除所有文件的命令是哪个

    在Linux系统中,删除所有文件的命令是rm。rm命令用于删除一个或多个文件或目录,如果不指定任何选项,rm将默认删除空目录,如果要删除非空目录,需要使用-r(递归)选项,还可以使用其他选项来定制删除行为,例如删除只读文件、保留备份文件等。本文将详细介绍Linux中使用rm命令删除文件的方法和技巧。基本用法1、删除单个文件:rm 文件……

    2023-12-13
    0138
  • html怎么遍历list

    在HTML中,本身并不具备程序语言中的遍历功能,通过嵌入JavaScript(一种常用的网页脚本语言),我们可以实现对列表(list)的遍历,以下是使用JavaScript在HTML中遍历列表的方法介绍。1、获取列表元素 我们需要在HTML文档中创建一个列表(一个<ul>或<ol&gt……

    2024-02-12
    0272

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入