Linux下怎么快速删除大量文件和移动大量文件

1. 快速删除大量文件

问题:当删除大量文件时候,rm -r 命令不好用,很慢,也没啥输出。

解决:使用 rsync

# 1. 创建一个空文件
mkdir null
# 2. 删除目标文件夹 testDir
rsync -av --delete null/ testDir/
# 然后我们把 null 和 目标文件夹删除即可。

选项 --delete 使testDir/目录内容和空目录内容保持一致,不同的文件及目录将会被删除,即 null 里面有什么内容,testDir 里就有什么内容;null 里没有的,而 testDir 有的,就必须要删除,因为 null 目录为空,因此此命令会删除 testDir 目录下的所有内容。

rsync提供了一些跟删除相关的参数:

rsync --help | grep delete
--del an alias for --delete-during
--delete delete files that don't exist on the sending side
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during transfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files on the receiving side
--ignore-errors delete even if there are I/O errors
--max-delete=NUM don't delete more than NUM files

选项说明:

–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态

参考:

【1】https://blog.csdn.net/liuxl57805678/article/details/95367881
【2】https://www.cnblogs.com/shuaixf/p/3493025.html

2. 快速移动大量文件(并删除):

rsync -avz --progress --bwlimit=50000 源目录/ 目标目录/
# 50000 表示限速 50m/s, 可以自己定义
rsync -avz --progress --bwlimit=50000 源目录/ 目标目录/ --remove-source-files
# --remove-source-files 在复制完成后,删掉源文件。需要谨慎。
# 复制完成后,就可以使用 1 中的删除命令删除所有源文件了。

移动完后我们也可以在设置一个软连接,将新的位置映射到原来的位置上面。
参考:https://www.cnblogs.com/odesey/p/17218519.html

ln -s 新的文件夹路径 原来的路径

第一个参数是真的放了东西的,第二个是快捷方式。 注意 第二个会自动创建,不会手动创建。

取消软连接:

unlink link_name

参考链接:
【1】https://zhuanlan.zhihu.com/p/569684954
【2】https://blog.csdn.net/skate6/article/details/70156174 有断点续传功能

posted @   Zenith_Hugh  阅读(2272)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

微信打赏