首页
学习
活动
专区
工具
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 .

3K10

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命令配合使用execxargs可以使用户对所匹配到文件执行几乎所有的命令

87120
  • 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.6K100

    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

    27.3K51

    【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.4K10

    Linux命令之find——查找命令

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

    4.6K50

    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显示出实际路径,而非使用连接

    92660

    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

    89600

    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.6K20

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

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

    2.3K10

    一天一个 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

    76530

    Linux系统几个实用技巧

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

    74420

    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.

    92570

    今天几件事情记录

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

    39620

    linux 入门指令

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

    5K40

    每个开发人员都应该知道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 当前工作目录所有文件

    63720

    不服来战!这20类500个常用命令参数你一定记不到50%

    此时若路径某些目录尚不存在,加上选项后,系统将自动建立好那 些尚不在目录,即一次可以建立多个目录; 实例: (1)当前工作目录下创建名为...5、rm命令 删除一个目录一个或多个文件目录,如果没有使用- r选项,则rm不会删除目录。...f开头文件 rm -- -f* 6、rmdir命令 从一个目录删除一个或多个子目录项,删除目录时也必须具有对其父目录写权限。...{} 花括号代表前面find查找出来文件名。 实例: (5)在当前目录查找更改时间10日以前文件删除它们(无提醒) find ....-type f -mtime +10 -exec rm -f {} \; (6)当前目录查找所有文件名以.log结尾、更改时间5日以上文件,并删除它们,只不过删除之前先给出提示

    95180
    领券