周五下班前运行的存图程序,想看看周末两天存的图片能占用多大储存,结果周一早上一看文件夹有350G的图片,尝试删除的时候出了问题,特此记录一下。

开始用删除命令

rm -rf ./myfile/*

结果等待半天,无反应,卡死

然后右键文件夹放入回收站,右键delete,以及右上方empty清空,均卡死无反应

经过搜索,找到了rsync这个命令

首先,检查是否已安装

which rsync

其次,建立一个空的文件夹:

mkdir /tmp/test

最后,用rsync删除目标目录:

rsync --delete-before -a -H -v --progress --stats /tmp/test/ /home/用户名/.local/share/Trash/files/

这样我们要删除的Trash目录也就是回收站的文件就会被清空了。因为我要删除的图片实在太多,整整删了半天。rsync实际上用的是替换原理,处理数十万个文件也没问题。

为什么rsync能够快速删除大文件?

1)rm命令大量调用了lstat64和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。过程:正式删除工作的第一阶段,需要通过getdirentries64调用,分批读取目录(每次大约为4K),在内存中建立rm的文件列表;第二阶段,lstat64确定所有文件的状态;第三阶段,通过unlink执行实际删除。这三个阶段都有比较多的系统调用和文件系统操作。

2)rsync所做的系统调用很少:没有针对单个文件做lstat和unlink操作。命令执行前期,rsync开启了一片共享内存,通过mmap方式加载目录信息。只做目录同步,不需要针对单个文件做unlink。

另外,在其他人的评测里,rm的上下文切换比较多,会造成System CPU占用较多——对于文件系统的操作,简单增加并发数并不总能提升操作速度。

总结:频繁做减法不如直接从头来过

把文件系统的目录与书籍的目录做类比,rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复操作很多次;rsync删除内容时,建立好新的空目录,替换掉老目录,基本没开销。

另,find配合rm删除(少量数据删除的实测有效,大数量级的删除待测)

使用find命令

   将当前目录下所有test.file文件删除  

find ./-name "1.jpg" -exec rm -rf "{}" \;

将当前目录下所有.jpg结尾的图片删除  

find ./20200825085809/ -name "*.jpg" -exec rm -rf "{}" \;

  find:linux的查找命令,用户查找指定条件的文件

  ./20200825085809/:当前目录下的20200825085809目录

  "*.jpg"":所有.jpg结尾的图片,也可删指定的单个文件

  -exec:选项

  rm -rf:强制删除文件,包括目录

  {} \; :固定写法,一对大括号+空格+\

ubuntu删除超级大的文件解决方法(实测)相关推荐

  1. Ubuntu虚拟机下忘记密码的解决方法-实测可用

    由于春节放假半个月,很久没有使用工作的虚拟机里的ubuntu系统,导致忘记了密码.不想重装系统的话那就找回密码(找回密码比重装系统更简单可行),本方法实测可用,特转载记录下来,分享给需要的人.(我的U ...

  2. 计算机d盘的权限怎么解决,D盘没权限,不能删除更改任何文件解决方法

    D盘没权限,不能删除更改任何文件解决方法 今天接到一单,很奇怪 首先肯定是安全里添加 权限了 添加了,还是不行,添加 了所有用户权限 都不行 后来发现可以用已经安装在D盘程序的自带卸载工具来卸载本身 ...

  3. win10杀毒防护已经关闭了还是删除文件解决方法

    win10是一款很好用的电脑系统,该系统的病毒拦截功能很强大,有些用户遇到了杀毒防护关闭了但是文件还是会被删除的情况,下面小编就带来了解决的方法,感兴趣的话快来看看吧.  win10杀毒防护已经关闭了 ...

  4. windows删除不了文件解决方法(亲测有效)

    windows删除不了文件解决方法 文件说是在SYSTEM中打开不能删除怎么办(伪装成字体) 首先打开计算机,在计算机内进入C盘界面内,在C盘界面内找到windows文件并点击打开 C:\Window ...

  5. 乌班图linux分辨率不能调,ubuntu不能设置高分辨率问题的解决方法,

    ubuntu不能设置高分辨率问题的解决方法, 在ubuntu12.10上安装gnome切换到经典模式后,分别率最高只有1024*768,以为是没有安装显卡驱动导致的,上网搜索了N多方法,安装了各种nv ...

  6. 交换机组最常见的8大故障及解决方法

    在交换机组网时常见的故障比较多,为了帮助大家更好地排除这些故障,在此飞畅科技的小编来为大家介绍一些常见的典型故障案例和处理思路供大家参考.接下来大家就一起来看看交换机组最常见的8大故障及解决方法吧. ...

  7. win10下双系统安装以及Ubuntu双系统启动时卡死的解决方法

    win10下双系统安装以及Ubuntu双系统启动时卡死的解决方法 win10下双系统安装以及Ubuntu双系统启动时卡死的解决方法 步骤一 制作系统光驱 步骤二 磁盘分区 步骤三 进入Bios设置U盘 ...

  8. ubuntu mysql 2003_Ubuntu 安装 mysql Ubuntu 安装 mysql 忘记初始密码解决方法

    查看是否安装Mysql sudo netstat -tap | grep mysql 如果为空则没有安装,进行安装: sudo apt-get install mysql-server mysql-c ...

  9. 出现找不到sct文件解决方法:.\Objects\MyFirstExample.axf: error: L6031U: Could not open scatter descript

    芯片选为:ARM7(大端) 如果新版KEIL没有ARM7选项,则去官网下载对应补丁,地址:ARM7补丁-选择对应的已安装keil版本,我的是5.14 安装后即可. 出现找不到文件解决方法: 按如下图先 ...

最新文章

  1. 土豆上的小霉菌引发百万人死亡和逃难,却造就全球7千万后裔
  2. Docker 启动 nacos
  3. 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
  4. 没有任何权力的“项目经理”该如何当?
  5. 前端工程师面试经验导图
  6. 程序设计导引(四)[终结篇]
  7. 怎么查看自己电脑是否被安装远程监控
  8. 游戏文案策划:资料推荐
  9. HuaWei ❀ 双协议栈
  10. 最大m子段和总结与例题 51nod1052 HDU1024
  11. MacBook Pro维修过程
  12. 物联网平台在AIoT领域8大场景应用
  13. Python数据可视化之南丁格尔玫瑰图
  14. ubuntu linux编译环境搭建,Ubuntu14.04开发环境搭建
  15. Adobenbsp;photoshopnbsp;cs5,dreamweavernbsp;…
  16. python的describe参数_Python Pandas Series.describe()用法及代码示例
  17. 【HCNA】-【网络基础】
  18. openjudge 1.8.24 蛇形填充数组
  19. Mysql进阶索引篇03——2个新特性,11+7条设计原则教你创建索引
  20. NPOI使用手册 (操作Excel)

热门文章

  1. 如何使用阿里云创建镜像和实例
  2. Python每日一报
  3. AdBlock/AdBlock Plus 屏蔽广告
  4. ear的英语怎么念_ears用英语怎么读
  5. Palabos用户手册翻译及学习(四)非本地操作的数据处理器和块之间的耦合
  6. 《java并发编程实战》笔记(第3章)
  7. 南京市城镇居民基本医疗保险暂行办法实施细则
  8. 如何分辨iphone 的冷屏与暖屏
  9. 从Spring源码探究IOC初始化流程
  10. textureview 缩放_TextureView实现视频播放详解