首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让此脚本在不使用find的情况下删除当前目录和子目录中的零长度文件?

要实现在不使用find的情况下删除当前目录和子目录中的零长度文件,可以使用以下脚本:

代码语言:txt
复制
#!/bin/bash

# 定义函数,用于递归删除目录中的零长度文件
function delete_empty_files() {
    local dir=$1

    # 遍历目录中的文件和子目录
    for file in "$dir"/*; do
        if [[ -f "$file" && ! -s "$file" ]]; then
            # 如果是零长度文件,则删除
            rm "$file"
            echo "已删除文件:$file"
        elif [[ -d "$file" ]]; then
            # 如果是子目录,则递归调用函数
            delete_empty_files "$file"
        fi
    done
}

# 调用函数,传入当前目录
delete_empty_files "$(pwd)"

这个脚本会递归地遍历当前目录及其子目录中的文件和子目录。对于每个文件,它会检查是否为零长度文件(即文件大小为0)。如果是零长度文件,则会使用rm命令删除该文件,并输出相应的提示信息。对于子目录,它会递归调用自身,以便处理子目录中的文件。

这个脚本可以通过直接运行或将其保存为可执行文件后运行来使用。请确保在运行脚本时具有足够的权限来删除文件。

注意:由于要求不能提及特定的云计算品牌商,因此无法提供与腾讯云相关的产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

教你Linux find命令实例教程:15个find命令用法

在系统上查找文件或目录时,Linux上的find命令无与伦比。它使用简单,而且有许多不同的选项,可让您微调文件搜索。 继续阅读以查看如何使用此命令在系统上查找任何内容的示例。...目录 查找目录 查找隐藏文件 查找特定大小或大于X的文件 从文件列表中查找 不在列表中查找 设置maxdepth 查找空文件(零长度) 查找最大的目录或文件 查找setuid设置文件 查找sgid设置文件...查找隐藏文件 由于Linux中的隐藏文件和目录以句点开头,因此我们可以在搜索字符串中指定此搜索模式,以便递归列出隐藏的文件和目录。...在-maxdepth之后指定一个数字,以指示查找应递归搜索的子目录数。 仅搜索当前目录中的文件,而不递归搜索: $ find ....-maxdepth 0 -name "myfile.txt" 仅在当前目录和更深的一个子目录中搜索文件: $ find .

3.2K10

Linux基础(强大到流泪的findgrep)

相应命令的形式为’command’ { } ;,注意{ }和;之间的空格 find ./ -size 0 -exec rm {} ; 删除文件大小为零的文件 (还可以以这样做:rm -i find...-name “*.conf” -mtime +5 -ok rm { } ; 在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示 也有人这样总结...-name “*.c” 在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件 -perm 按照文件权限来查找文件。 find ....-size +10 –print 在当前目录下查找长度超过10块的文件(一块等于512字节) -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。...-ctime +3 -exec rm -rf {} ;) find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件 find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令

1.1K20
  • linux(七)之linux系统中查找文件

    -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。     ...4.2)在/logs目录中查找更改时间在5日以前的文件并删除它们         记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!...4.3)在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。                     ...-name "*.txt" -print       3)想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用       $ find ....-size +10 -print         2.2.6.11)使用depth选项         在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。

    5.7K100

    linux find 命令查找文件和文件夹

    任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。..." 当前目录及子目录下查找所有以.txt和.pdf结尾的文件 find . \( -name "*.txt" -o -name "*.pdf" \) 或 find ....-type f -size 10k 删除匹配文件 删除当前目录下所有.txt文件 find ....找出自己家目录下所有的.txt文件并删除 find $HOME/. -name "*.txt" -ok rm {} \; 上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。.../sk" -prune -o -name "*.txt" -print find其他技巧收集 要列出所有长度为零的文件 find . -empty

    28K51

    Linux命令之find——查找命令

    /text.sh {} \; 例7 :列出所有长度为零的文件:find . -empty find命令详解: find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。...如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。...想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用: find ....建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。...find命令在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

    4.8K50

    【linux命令讲解大全】011.使用find命令在指定目录下查找文件及应用技巧和选项详情

    如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。...:查找在指定时间曾被更改过的文件或目录,单位以分钟计算; -mount:此参数的效果和指定 -xdev 相同; -mtime:查找在指定时间曾被更改过的文件或目录,单位以24小时计算...在 /home 目录下查找以 .txt 结尾的文件名 find /home -name "*.txt" 同上,但忽略大小写 find /home -iname "*.txt" 当前目录及子目录下查找所有以...-type f -size 10k 删除匹配文件 删除当前目录下所有 .txt 文件 find ...../ find 其他技巧收集 要列出所有长度为零的文件 find . -empty 其它实例 find ~ -name '*jpg' # 主目录中找到所有的 jpg 文件。

    1.8K10

    linux—find用法详解

    } \; 删除当前目录下文件大小为零的文件。         ...-name "*.conf"  -mtime +5 -ok rm {  } \; 在当前目录中查找所有文件名 以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示      ...-size +10 -print 在当前目录中查找文件大小为10块的文件(一块512字节)          -depth  在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找                   ...例如:find / -name ”nginx“ -depth -print   他将首先匹配所有的文件,然后再进入子目录查找          -mount  在查找文件时不跨越文件系统mount点...-name  ”tst“ -mount -print  从当前目录中开始查找位于本文件系统上的tst文件,不跨越文件系统          -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件

    4.3K30

    【建议收藏系列】爆肝3w字带你理解什么叫运维~

    f - 普通文件。 -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。 -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。...在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 $ find ....-name "*.txt" -print 想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用: $ find ....-size +10 -print 11、使用depth选项 在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。...find命令的例子; 1、查找当前用户主目录下的所有文件: 下面两种方法都可以使用 $ find $HOME -print $ find ~ -print 2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件

    2.1K30

    Hacker基础之Linux篇:基础Linux命令三

    如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。 ?...n[c] [查长度为n块[或n字节]的文件] -depth [查找递归的目录深度] -fstype [查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab...一般常用的几种用法和情景: 1 将目前目录及其子目录下所有延伸档名是.c的文件列出来 find . -name "*.c" 2 将目前目录其其下子目录中所有一般文件列出 find ....-ctime -20 4 查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问 find /var/log -type f -mtime +7 -ok rm {} ; 5 查找前目录中文件属主具有读...pwd命令使用介绍: 命令格式:pwd [选项] 命令功能:查看当前工作目录的完整路径 命令的常用参数选项说明: 一般情况下不带任何参数 如果目录是链接时,pwd -P显示出实际路径,而非使用连接

    94360

    Linux基础命令

    只更改存取时间     -c  或--no-create  不建立任何文档     -d  使用指定的日期时间,而非现在的时间     -f  此参数将忽略不予处理,仅负责解决BSD版本touch...    -i  进行任何删除操作前必须先确认     -f  强制删除     -r  递归删除 命令功能:     rm用于删除文件,一般常和find在一起使用,这点我们在find用法中会讲到。...rmdir   默认情况下rmdir命令只是用来删除空目录的,非空目录的删除需要用rm -fr来递归删除,这样用的风险很大,所以一般会和find联合使用。...-name "*.sh" 在当前目录及其子目录(用“.”表示)中查找任何扩展名为“sh”的文件        -perm   按照文件权限来查找文件。          find ....-perm 755 在当前目录下查找文件权限位为755的文件     -prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find

    90500

    Linux文件查找命令find,xargs详述

    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。 -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。...在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 $ find ....查找当前用户主目录下的所有文件: 下面两种方法都可以使用 $ find $HOME -print $ find ~ -print 2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件...-name "*.txt" -print 想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用: $ find ....-size +10 -print 11、使用depth选项 在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。

    7.7K20

    Linux常用命令大全(整理自用)

    此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。...rm 命令 删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。...rm [选项] 文件… 实例 删除任何 .log 文件,删除前逐一询问确认: rm -i *.log 删除 test 子目录及子目录中所有档案删除,并且不用一一确认: rm -rf test 删除以 -...f 开头的文件 rm -- -f* rmdir 命令 从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。...-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

    2.4K10

    linux基本命令集锦

    Du命令 统计目录中的文件的大小并以列表显示: du [Path] -a 全部文件 包括隐藏的。 -h 以M 为单位显示文件大小结果。 -s 统计此目录中所有文件大小总和。...Find查找命令 find   -name “*.txt”  说明:查找当前目录以及子目录所有txt文件,但是要进行不区分大小写需要将name改成iname find   /home  -name...其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。 默认情况下,’grep’只搜索当前目录。...Locate通过索引查找文件 使用:locate  filename.txt 可以使用-i参数搜索中不区分大小写,可以使用sudo updatedb命令在需要创建文件名索引 11. ...Ps列出进程 使用:px aux 16. Rm删除文件和目录 使用:rm -rf  /hom/paul  -r递归删除 -f强制删除 17.

    94371

    一天一个 Linux 命令(17):find 命令

    任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。...-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。...-mount:在查找文件时不跨越文件系统mount点,只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件...-exec选项中执行 find ./ -type f -exec ls -l {} \; 16.根据时间查找并删除,在目录中查找更改时间在14日以前的文件并删除它们 find ./ -type f -mtime...+14 -exec rm {} \; 17.在目录中查找后缀为**.log**的文件且更改时间在14日以前的文件并删除它们,在删除之前先给出提示 find ./ -name "*.log" -mtime

    83730

    Linux系统中的几个实用技巧

    用了Linux这么久,还是一知半解的,毕竟不看Linux源码,许多奇淫巧技都不知道如何使用,就分享一些实用的小技巧和网上搜集的东西吧!...一:Linux中的find命令 find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...并且将查找到的子目录和文件全部进行显示。 实例 根据文件或者正则表达式进行匹配 列出当前目录及子目录下所有文件和文件夹 find . ?...-type f -size 10k 删除匹配文件 删除当前目录下所有.php文件 ---谨慎操作 find . -type f -name "*.php" -delete ?...find其他技巧收集 要列出所有长度为零的文件(在这里可以大致理解为空文件!) find . -empty ?

    74920

    今天的几件事情记录

    -ok:   和 -exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的 shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行功能。...4.命令选项: -name  按照文件名查找文件 -perm  按照文件权限来查找文件 -prune 使用这一选项可以使find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,...-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。...-mount  在查找文件是不跨越文件系统mount点 -follow   如果find 命令遇到符号链接文件,就跟踪至链接所指向的文件。...该命令的几种模式: a:append,让文件或目录只能追加,不能删除; b:不更新文件或目录的最后存取时间; c:compress将文件或目录压缩后存放; d:no dump将文件或目录排除在dump操作之外

    40320

    linux 入门指令

    命令使用示例: 在路径表示中: 一个半角句号(.)表示当前目录,例如路径./app/log等同于app/log。 两个半角句号(..)表示上级目录,例如路径/usr/local/.....chmod命令 chmod命令用于修改文件权限mode,-R参数以递归方式对子目录和文件进行修改。 命令使用示例: 新建名为hello.sh的Shell脚本,该脚本将会输出Hello World。...任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。...执行如下命令,将当前目录及其子目录下所有文件后缀为.txt的文件列出来。 find . -name "*.txt" 返回结果如下所示。 b....执行如下命令,查找系统中所有文件长度为0的普通文件,并列出它们的完整路径。 find / -type f -size 0 -exec ls -l {} \;

    5K40

    10 大可以摧毁你的 Linux 的命令

    它的作用是递归地删除整个文件系统中的所有文件和目录。解释:rm:删除文件或目录。-r:递归删除目录及其内容。-f:强制删除,即使是写保护文件也会删除。/:根目录,表示删除整个系统的所有文件。...:|::函数调用自己并创建一个新的进程(fork),并且此进程继续调用另一个进程。&:让进程在后台运行。;:分隔命令。...-R:递归地更改目录及其子目录的权限。777:为所有用户赋予读、写、执行的权限。/:根目录,表示系统的所有文件和目录。...7. rm -rf *如果你在一个重要的目录(例如 /home 或 /etc)下运行 rm -rf *,将删除该目录中的所有文件和文件夹。解释:rm -rf:递归删除文件和目录。...*:表示当前目录中的所有文件和子目录。如果误在重要目录下执行此命令,所有文件会被删除,导致数据丢失。它没有目标指定,也没有加以限制,因此执行位置非常关键。

    10410

    每个开发人员都应该知道的11个Linux命令

    如果路径名是目录,则 ls 显示有关文件和其中的子目录的信息。 使用 ls 命令显示当前目录中的所有文件: ? 你可能已经注意到文件显示为灰色,而文件夹为蓝色。这是为了帮助我们区分文件夹和文件。...当用户在创建文件时没有要存储的数据时,可以使用 touch 命令。 touch 创建新文件: ? 我们是如何使用 touch 来创建文件和 cat 查看文件内部的。...7. mkdir $ mkdir some-directory 如您所料,mkdir 在当前活动路径中创建一个新的空目录。使用此命令创建新文件夹,而不是在文本编辑器或 GUI 中四处单击。...10. find $ find path -name filename find 命令使你可以快速查找文件或目录。当你正在处理具有数百个文件和多个目录的大型项目时,此功能很有用。...查找所有名为 index.js 的文件: ? 搜索特定类型的文件 find 命令还允许您在目录(及其子目录)中搜索相同类型的文件。例如,以下命令将搜索 .js 当前工作目录中的所有文件。

    64620
    领券