菜鸡脚本,想看看除了awk内置语言外有没有其他方法快速删除空文件夹;

一条命令搞定,可直接看底部

海量空目录暂时没试过,会遍历目录下的所有文件,不过要想删除某一路径下的所有空目录无可避免的要遍历所有目录;

第一次:

命令:
[root@zabbix-server test]# find /root/test/| cat -n |sort -r|awk '{$1=""; print }'|xargs -i rmdir {}言简意赅:
find  /root/test/        :要删除哪个路径下的空目录
cat   -n                :给查找的结果添加行号,方便排序
sort  -r                :反向排序,为了先删除子目录,再删除父目录
awk  '{$1="";print }'    :去除行号
xargs -i rmdir {}        :根据查找的结果逐条删除空目录,rmdir没有bug的话安全的狠,不会删除文件和有子数据的目录。演示(下面的123是个文件,其他的是目录):
[root@zabbix-server test]# tree
.
├── 123
├── 2
│   └── 22
├── 3
│   └── 33
├── 4
├── 5
└── 6
[root@zabbix-server test]#
[root@zabbix-server test]#
[root@zabbix-server test]#
[root@zabbix-server test]# pwd
/root/test
[root@zabbix-server test]# find /root/test/
/root/test/
/root/test/2
/root/test/2/22
/root/test/3
/root/test/3/33
/root/test/4
/root/test/5
/root/test/6
/root/test/123
[root@zabbix-server test]#
[root@zabbix-server test]#
[root@zabbix-server test]#
[root@zabbix-server test]# find /root/test/| cat -n |sort -r|awk '{$1=""; print }'|xargs -i rmdir {}
rmdir: failed to remove ‘/root/test/123’: Not a directory
rmdir: failed to remove ‘/root/test/’: Directory not empty
[root@zabbix-server test]# ls
123

目测没问题,不会删除任何文件数据,有bug概不负责

大量\海量数据的文件夹可增加这一项优化,没测试过,具体速度快多少可以尝试下:

#(下面的123是个文件,其他的是目录)
[root@zabbix-server test]# find /root/test/
/root/test/
/root/test/123
/root/test/2
/root/test/2/22
/root/test/3
/root/test/3/33
/root/test/4
/root/test/5
/root/test/6
[root@zabbix-server test]# find  /root/test/ -type d
/root/test/
/root/test/2
/root/test/2/22
/root/test/3
/root/test/3/33
/root/test/4
/root/test/5
/root/test/6# 添加-type  d,意为只查找文件夹,看上面123那个文件就没出来

2022年3月23日09:21:25补充:

第二次:

也有更简洁的方式推荐,不过只会清理最底层的空目录

# 直接找出空目录,删除
find . -type d -empty|xargs -i  rmdir {}# 例子:当前的目录层级如下
admin test # find .
.
./3
./3/33
./5
./6
./2
./2/22
./2/22/222
./4
# 可见直接列出了空目录路径
admin test # find . -type d -empty
./3/33
./5
./6
./2/22/222
./4# 这种情况下,./2/22/222空目录被删除后./2/22也变成了空目录,但是一层目录./2和二层目录./2/22并不会被清理,只有底层目录222被清理,所以还是这条清理最彻底find /root/test/ -type d | cat -n |sort -r|awk '{$1=""; print }'|xargs -i rmdir {}

第三次:效果和第二次相同,更简洁

find /home/amax/test/ -type d -empty|xargs -i rmdir -v -p  {}  # rmdir 的-p 参数,和mkdir  -p一个作用,如果父目录是空也会删除
# rmdir  -v可以展示删除详细

如果空文件和空目录都要删除的话:

#先删除空文件
find /home/amax/test -type f -empty|xargs -i rm {}
# 再删除空目录
find /home/amax/test/ -type d -empty|xargs -i rmdir -v -p  {}
# 有更合适的方法请留言如果只要删除同一级目录下的空文件和空目录:
find /home/amax/test -empty|xargs -i rm -d {}

批量删除大量空目录、快速删除空文件夹相关推荐

  1. 删除指定目录下的空文件夹

    /*** @author:樊* @Data: 2022/7/25* @Time: 20:42*//* * 删除指定目录下的空文件夹*/ package test.test1;import java.i ...

  2. 查找空目录Linux,查找空文件夹

    find . -name "*" -type f -size 0c | xargs -n 1 rm -f 就是删除1k大小的文件.(但注意不要用 -size 1k,这个得到的是占用 ...

  3. linux删除文件夹下所有文件_本地文件快速搜索+批量删除空文件夹

    本号所有资源版权归原作者所有,如有侵权请加小编微信删除.本号免费分享,仅供学习交流,下载后24小时内请自觉删除,切勿用于商业用途,否则后果自负! 今天第一个分享是一个本地文件快速搜索神器Everyth ...

  4. 批量删除电脑或手机中的空文件夹

    目录 背景 国内外研究现状 背景 偶然看到python的OS库中有这样两个函数 os.rmdir() 删除空文件夹 remove dir os.mkdir() 新建文件夹 make dir 就想到能不 ...

  5. 利用批处理脚本批量删除电脑上的空文件夹

    @echo off for /f "tokens=*" %%i in ('dir/s/b/ad^|sort /r') do rd "%%i" 使用"记 ...

  6. 用bat批处理程序通过DOS命令行删除所有的空文件夹

    用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的.当然你可以在空文件下创建.keep文件(或.gitkeep文件),然后就可以上传了. 但是如果空文件夹比较多,并且我 ...

  7. 服务器bat脚本删除空文件夹,windows批处理命令(1)——右键清理空文件夹

    日常学习工作免不了使用电脑,而作为一个强迫症,看到电脑中有空文件及其不爽: 再加上使用一些Git工具时含空文件不允许提交,因此就寻思着可不可以写一个脚本直接一键清理空文件夹. 最终实现的效果如下: 最 ...

  8. bat命令删除指定文件夹下的空文件夹

    @echo off&title 清理空目录 set/p Pan=请输入要清理文件夹,回车确认: cls&echo 即将开始清理...&ping 0 -n "3&quo ...

  9. python删除空文件和文件夹_python 两种方法删除空文件夹

    第一种方法: import os def delete_gap_dir(dir): if os.path.isdir(dir): for d in os.listdir(dir): #print(&q ...

  10. 删除电脑里的空文件夹

    发现电脑好多空文件夹,网上没有找到删除空文件夹的程序,自己动手谢了段代码 import java.io.File;/*** @author zhangyanan*/ public class File ...

最新文章

  1. 计算机网络-UDP协议
  2. 当对项目强名时自动构建失败(TeamFoudationServer试用笔记)
  3. wxWidgets:wxRichTextFieldTypeStandard类用法
  4. 《Linux内核设计与实现》读书笔记(六)- 内核数据结构
  5. bzoj 4566 找相同字符 —— 广义后缀自动机
  6. 使用vue-amap
  7. pandas中如何选取某几列_【python】pandas中 loc amp; iloc用法及区别
  8. Java中的Fork / Join框架的简要概述
  9. Linux怎么更改声音板卡顺序,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  10. 细数改善WPF应用程序性能的10大方法
  11. ILI9341液晶LCD彩色显示原理
  12. springboot+aop切点记录请求和响应信息
  13. 我的 2020 总结:跌宕起伏
  14. 列表查询数据交互简写形式
  15. Python:使用正则去除HTML标签(转)
  16. IIS中发布网站的问题
  17. JavaScript语法学习
  18. IIR滤波器的FPGA实现
  19. 这个开源好用的数据库建模工具,让我眼前一亮
  20. 可禁用计算机服务,哪些Microsoft服务项目可以禁用以提高 电脑速度

热门文章

  1. linux 下pdo fetchall()不起作用,使用fetchall(PDO :: FETCH_ASSOC)什么都没有返回
  2. Jest测试入门到使用
  3. DeepStream之deepstream_test1_app解析
  4. 视达配色教程13 黄色的色彩性格是什么
  5. html如何同时更改相同的字,Word怎么一次性把全部字改成同样字体?
  6. matlab画图 设置按钮,Matlab绘图操作(1)
  7. win10电脑服务器在哪个文件夹下,win10电脑桌面文件在c盘哪个文件夹里
  8. 用管理员身份登录oracle数据库
  9. 典型的SS7呼叫信令流程(真)
  10. 一把辛酸泪:Mac上SublimeText3安装Emmet时PyV8死活安装不上的问题解决