📌  相关文章
📜  从目录中删除零大小文件的 Shell 脚本

📅  最后修改于: 2022-05-13 01:57:28.646000             🧑  作者: Mango

从目录中删除零大小文件的 Shell 脚本

零大小文件是不包含任何数据且长度为 0 的文件。它也称为零字节文件。不完整的传输可能是导致文件大小为零的原因。您可以通过在终端中运行以下命令来有意创建一个零大小的文件:

touch zero_sized_file_name

输出:

创建零大小的文件 sin linux

零大小的文件

方法

  • 输入目录名称并检查该目录是否存在于当前文件夹/目录中。
  • 使用 for 循环遍历每个文件并检查它们的大小。

方法一:

步骤包括:

  1. 首先,我们使用 read命令将目录名称作为用户的输入。
  2. 为了检查用户输入的目录名是否真的存在,我们使用 if [-d “$directory_name”]语句。这里我们使用带有 -d标志的 if语句,如果目录存在,它将返回 true。
  3. 如果目录存在,那么我们将使用循环 语句( for循环)迭代文件并使用-size 0检查它们的大小,如果文件大小为零,那么我们进入循环并使用rm命令删除文件。 rm (remove) 用于删除文件/文件夹。
  4. 之后,我们使用 echo命令显示文件已成功删除。 echo 就像一个打印语句,用于在屏幕上显示内容。
  5. 如果目录不存在,我们将显示不存在的目录。
#! /bin/bash

# Taking directory name as input from user
echo -n "Enter name of the directory : "
read directory_name

# If directory exists it will print 
# Directory exits 
# and remove the zero-sized files.
# Or if directory doesn't exists it will print 
# Directory does not exists.
if [ -d "$directory_name" ];
then
    echo "Directory exist"
        for i in `find $directory_name -size 0`
        do
            rm $i    
            echo "Zero-sized files are Successfully deleted"    
        done
else
    echo "Directory does not exist"

fi

方法二:

步骤包括:

  1. 首先,我们必须使用目录名称作为用户的输入 读取命令并将其存储在变量directory_name 中
  2. 为了检查用户输入的目录名是否真的存在,我们使用if [-d “$directory_name”]语句。这里我们使用带有-d标志的 if 语句,如果目录存在,它将返回true。
  3. 如果目录存在,那么我们将使用循环语句(for 循环)迭代文件并使用-size 0检查它们的大小,一旦我们找到满足我们要求的文件(即文件大小为零),使用-delete参数,我们将从该目录中删除该特定文件。我们做同样的事情,直到没有零大小的文件。
  4. 之后,我们使用 echo命令显示文件已成功删除。 echo用于在屏幕上显示内容。
  5. 如果目录不存在,我们只需使用 echo 命令返回不存在的目录。
#! /bin/bash

# Taking directory name as input from user
echo -n "Enter name of the directory : "
read directory_name

# If directory exist it will print 
# Directory exits 
# and remove the zero-sized files.
# Or if directory doesn't exist it will print 
# Directory does not exist.
if [ -d "$directory_name" ];
then
    echo "$directory_name Directory exist"
        for i in `find $directory_name -size 0 -delete`
        do
        echo ""
        done
        echo "Zero-sized files are Successfully deleted"    
else
    echo "$directory_name does not exist"

fi
 

输出 :

零大小的文件

删除零大小文件的脚本

使用脚本后