服务器上删除超大文件夹的解决方案

news/2024/11/7 18:46:26/

1.示例主脚本 delete_all_folders.sh

它会遍历指定目录下的所有子目录,并调用 delete_files.sh 脚本删除每个子目录中的文件和空目录

#!/bin/bash# 检查是否指定了根目录路径
if [ -z "$1" ]; thenecho "Usage: $0 <root_directory>"exit 1
fiROOT_DIRECTORY="$1"# 检查指定的根目录是否存在
if [ ! -d "$ROOT_DIRECTORY" ]; thenecho "Error: Root directory '$ROOT_DIRECTORY' does not exist."exit 1
fi# 遍历根目录下的所有子目录
for SUBDIRECTORY in "$ROOT_DIRECTORY"/*/; doif [ -d "$SUBDIRECTORY" ]; thenecho "Processing directory: $SUBDIRECTORY"# 调用 delete_files.sh 脚本./delete_files.sh "$SUBDIRECTORY"echo "All subdirectories in '$SUBDIRECTORY' have been processed."fi
doneecho "All subdirectories in '$ROOT_DIRECTORY' have been processed."

2.示例子脚本 delete_files.sh

#!/bin/bash# 检查是否指定了目录路径
if [ -z "$1" ]; thenecho "Usage: $0 <directory>"exit 1
fiDIRECTORY="$1"# 检查指定的目录是否存在
if [ ! -d "$DIRECTORY" ]; thenecho "Error: Directory '$DIRECTORY' does not exist."exit 1
fi# 递归删除目录下的所有文件
find "$DIRECTORY" -type f -print0 | xargs -0 -n 1000 -P 40 rm -f# 删除空目录
find "$DIRECTORY" -type d -empty -deleteecho "All files and empty directories in '$DIRECTORY' have been deleted."

3.赋予两个脚本权限

chmod +x delete_all_folders.sh
chmod +x delete_files.sh

4.后台运行脚本

nohup ./delete_all_folders.sh /path/to/root_directory > all_output.log 2>&1 &

5.查看 all_output.log 文件来检查主脚本的输出和错误信息

[root@localhost storage]# tail -f all_output.log
Processing directory: data//1001/
All files and empty directories in 'data//1001/' have been deleted.
All subdirectories in 'data//1001/' have been processed.
Processing directory: data//1002/
All files and empty directories in 'data//1002/' have been deleted.
All subdirectories in 'data//1002/' have been processed.
Processing directory: data//1003/

http://www.ppmy.cn/news/1545137.html

相关文章

(十四)JavaWeb后端开发——MyBatis

目录 1.MyBatis概述 2.MyBatis简单入门 3.JDBC&#xff08;了解即可&#xff09; 4.数据库连接池​ 5.lombok 6.MyBatis基本操作 7.XML映射文件 8.动态SQL 8.1 if标签 8.2 foreach标签 8.3 sql/include标签​ 1.MyBatis概述 MyBatis是一款优秀的持久层&#xff08…

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)

ShareGPT 格式 提出背景&#xff1a;ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录&#xff0c;这些记录涵盖了丰富的多轮对话内容。研究者们意识到&#xff0c;这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…

有源电力滤波器为什么能用在对电能质量要求高的场所?

有源电力滤波器&#xff08;APF&#xff09;主要应用于对电能质量要求较高的场所&#xff0c;并且常与产生谐波和无功功率的设备一起配合使用。 一、有源电力滤波器应用场所&#xff1a; 1、工厂生产线&#xff1a;在自动化生产线中&#xff0c;有大量的变频器用于电机调速。…

Go语言面向对象编程

文章目录 Go语言面向对象 一、结构体定义结构体定义结构体语法格式 二、实例化结构体结构体的使用结构体实例化语法new关键字 三、初始化结构体变量结构体初始化顺序初始化指定初始化 四、匿名结构体匿名结构体定义匿名结构体语法格式 五、结构体内嵌结构体内嵌语法、特性键值对…

使用 std::queue 来管理消息队列的单例模式实现多线程消息通知

直接上代码&#xff1a; // MessageQueue.h #ifndef MESSAGEQUEUE_H #define MESSAGEQUEUE_H#include <string> #include <optional> #include <mutex> #include <queue> #include <condition_variable>class MessageQueue { public:// 禁止拷贝…

【Ai测评】GPT Search偷偷上线,向Google和微软发起挑战!

最近&#xff0c;OpenAI 又推出了一个令人兴奋的新功能——GPT Search&#xff0c;已经正式上线了&#xff01; 功能介绍 GPT Search&#xff1a;为你带来全新搜索体验 目前&#xff0c;桌面端和移动端应用程序已经全面上线&#xff0c;所有 GPT Plus 和 Team 用户都可以立即…

网络安全从入门到精通(特别篇II):应急响应之DDOS处置流程

应急响应之DDOS事件处置流程 1. 现场访谈 访谈管理员,了解DDOS事件情况。 了解当前异常情况,异常出现的时间以及相应时间段内的流量情况,尤其是否有明显流量增大的情况;同时造成何种影响,当前最迫切的需求;了解当前的网络架构以及网络设备情况,同时了解业务系统架构,…

Node.js简介以及安装部署 (基础介绍 一)

Node.js简介 Node.js是运行在服务端的JavaScript。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎执行Javascript的速度非常快&#xff0c;性能非常好。 Node.…