本文目录导读:

- 批量删除文件(Python)
- 批量删除数据库记录(SQL)
- Unix/Linux 批量删除命令
- 批量删除系统任务/进程(Shell)
- 批量删除邮箱邮件(PowerShell,适用于Exchange/Office 365)
- 重要安全建议
是的,实用脚本完全可以实现批量删除功能!具体实现方式取决于你想删除什么类型的内容(文件、数据库记录、系统日志、邮件等),以下是几种常见场景的批量删除脚本示例:
批量删除文件(Python)
import os
import glob
def batch_delete_files(path, pattern="*.txt"):
"""批量删除指定目录下匹配模式的文件"""
files = glob.glob(os.path.join(path, pattern))
for file in files:
try:
os.remove(file)
print(f"已删除: {file}")
except Exception as e:
print(f"删除失败 {file}: {e}")
print(f"共删除了 {len(files)} 个文件")
# 使用示例:删除当前目录下所有.log文件
batch_delete_files(".", "*.log")
批量删除数据库记录(SQL)
-- MySQL批量删除符合条件的数据
DELETE FROM users
WHERE last_login < DATE_SUB(NOW(), INTERVAL 365 DAY)
LIMIT 1000; -- 建议分批删除避免锁表
-- 批量删除并分批执行
DELIMITER $$
CREATE PROCEDURE batch_delete_old_records()
BEGIN
DECLARE rows_affected INT DEFAULT 1;
WHILE rows_affected > 0 DO
DELETE FROM logs
WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY)
LIMIT 1000;
SET rows_affected = ROW_COUNT();
DO SLEEP(1); -- 暂停1秒减轻服务器压力
END WHILE;
END$$
DELIMITER ;
Unix/Linux 批量删除命令
# 删除所有 .tmp 文件
find /path/to/dir -name "*.tmp" -type f -delete
# 安全模式:先查看再删除
find /path/to/dir -name "*.tmp" -type f -exec rm -i {} \;
# 删除30天前的日志文件
find /var/log -name "*.log" -type f -mtime +30 -delete
批量删除系统任务/进程(Shell)
#!/bin/bash
# 批量停止所有名为 "my_process" 的进程
ps aux | grep "[m]y_process" | awk '{print $2}' | xargs -r kill -9
# 批量删除crontab中的特定任务
crontab -l | grep -v "backup_script" | crontab -
批量删除邮箱邮件(PowerShell,适用于Exchange/Office 365)
# 批量删除超过90天的邮件
$days = 90
$mailbox = "user@domain.com"
Get-MailboxFolderStatistics -Identity $mailbox -FolderScope Inbox |
Where-Object {$_.ItemsInFolder -gt 0} |
ForEach-Object {
$folder = $_.FolderPath
Get-MailboxFolder -Identity "$mailbox:$folder" |
Get-MailboxFolderStatistics |
Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-$days) -and $_.ItemType -eq "IPM.Note"} |
ForEach-Object {
Remove-MailboxFolder -Identity $_.Identity -DeletePermanently -Confirm:$false
}
}
重要安全建议
- 先备份再删除:批量删除前务必做好数据备份
- 分批执行:删除大量数据时建议分批(如每次1000条)
- 测试环境验证:先在测试环境跑一遍脚本
- 日志记录:记录删除操作的时间和影响范围
- 确认模式:使用带确认的选项(如
-i参数)初次运行
如果你有具体的删除需求(如特定类型的文件、特定条件下的数据),可以告诉我详细信息,我可以帮你定制更精准的脚本。