本帖最后由 pjboy 于 2024-11-29 10:12 编辑
最近看到服务器硬盘告急
想着先删掉一些早期无用的备份文件
结合AI写的这个
[Shell] 纯文本查看 复制代码 #!/bin/bash
# 检查是否提供了搜索目录参数
if [ -z "$1" ]; then
echo "用法: $0 <搜索目录> <名字模式>"
exit 1
fi
# 获取搜索目录和名字模式参数
SEARCH_DIR="$1"
shift # 将参数向左移动,以便$1现在是名字模式
TARGET_NAME="$1"
# 检查是否提供了名字模式参数
if [ -z "$TARGET_NAME" ]; then
echo "用法: $0 <搜索目录> <名字模式>"
exit 1
fi
# 打印将要删除的文件
echo "将要删除的文件:"
find "$SEARCH_DIR" -type f -name "$TARGET_NAME" -print
# 打印将要删除的文件夹
echo "将要删除的文件夹:"
find "$SEARCH_DIR" -type d -name "$TARGET_NAME" -print
# 询问用户是否确定要删除
read -p "您确定要删除上述文件和文件夹吗?(y/n): " CONFIRM
if [ "$CONFIRM" = "y" ] || [ "$CONFIRM" = "Y" ]; then
# 查找并删除匹配的文件
find "$SEARCH_DIR" -type f -name "$TARGET_NAME" -exec rm {} \;
# 查找并删除匹配的文件夹及其内容
find "$SEARCH_DIR" -type d -name "$TARGET_NAME" -exec rm -r {} \;
echo "删除操作已完成。"
else
echo "已取消删除操作。"
fi
执行效果:
友情提示:
仔细确认要删除的文件和目录;
使用命令行工具时谨慎操作,避免使用过于危险的参数(如-rf);
考虑在测试环境中先进行模拟操作以验证命令的正确性。 |