Linux制作有良好提示的清理缓存目录的脚本并加密脚本文件
Linux制作有良好提示的清理缓存目录的脚本并加密脚本文件
1,清理/home/scan/下目录中的缓存,会有提示操作。
#!/bin/bash
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 目标目录
TARGET_DIR="/home/scan"
# 函数:显示标题
show_header() {
clear
echo -e "${BLUE}=================================${NC}"
echo -e "${BLUE} 目录文件清理工具${NC}"
echo -e "${BLUE}=================================${NC}"
echo ""
}
# 函数:检查目录是否存在
check_directory() {
if [ ! -d "$TARGET_DIR" ]; then
echo -e "${RED}错误:目标目录 '$TARGET_DIR' 不存在!${NC}"
return 1
fi
if [ ! -r "$TARGET_DIR" ]; then
echo -e "${RED}错误:没有读取目录 '$TARGET_DIR' 的权限!${NC}"
return 1
fi
if [ ! -w "$TARGET_DIR" ]; then
echo -e "${RED}错误:没有写入目录 '$TARGET_DIR' 的权限!${NC}"
return 1
fi
return 0
}
# 函数:显示目录内容
show_directory_contents() {
echo -e "${YELLOW}目标目录内容预览:${NC}"
echo -e "${BLUE}目录路径:$TARGET_DIR${NC}"
echo ""
# 显示文件和子目录
if [ "$(ls -A "$TARGET_DIR")" ]; then
echo -e "${YELLOW}文件和子目录列表:${NC}"
ls -la "$TARGET_DIR"
echo ""
echo -e "${YELLOW}目录大小统计:${NC}"
du -sh "$TARGET_DIR"
else
echo -e "${GREEN}目录为空,无需清理${NC}"
fi
echo ""
}
# 函数:安全清理目录
safe_clean_directory() {
local file_count=$(find "$TARGET_DIR" -type f | wc -l)
local dir_count=$(find "$TARGET_DIR" -type d | wc -l)
echo -e "${RED}警告:此操作将删除目录内所有文件!${NC}"
echo -e "${YELLOW}统计信息:${NC}"
echo -e " 文件数量: $file_count"
echo -e " 目录数量: $((dir_count-1))" # 减去根目录
# 显示将要删除的文件类型
echo -e "${YELLOW}文件类型分布:${NC}"
find "$TARGET_DIR" -type f -name "*.*" | sed 's/.*\.//' | sort | uniq -c | sort -nr | head -10
echo ""
read -p "$(echo -e ${RED}'您确定要删除以上所有文件吗?(输入 \"YES\" 确认): '${NC})" confirm
if [ "$confirm" = "YES" ]; then
echo -e "${YELLOW}正在清理目录...${NC}"
# 删除所有文件但保留目录结构
find "$TARGET_DIR" -type f -exec rm -f {} \; 2>/dev/null
if [ $? -eq 0 ]; then
echo -e "${GREEN}目录清理完成!${NC}"
echo -e "${GREEN}所有文件已被安全删除${NC}"
else
echo -e "${RED}清理过程中出现错误${NC}"
fi
else
echo -e "${GREEN}已取消清理操作${NC}"
return 1
fi
}
# 函数:主菜单
main_menu() {
while true; do
show_header
echo -e "${BLUE}当前操作目录:$TARGET_DIR${NC}"
echo ""
if ! check_directory; then
echo -e "${RED}请检查目录是否存在或权限设置${NC}"
break
fi
show_directory_contents
echo -e "${YELLOW}请选择操作:${NC}"
echo -e " 1) 预览目录内容"
echo -e " 2) 执行清理操作"
echo -e " 3) 退出程序"
echo ""
read -p "$(echo -e ${BLUE}'请输入选项 (1-3): '${NC})" choice
case $choice in
1)
show_directory_contents
read -p "$(echo -e ${YELLOW}'按任意键继续...'${NC})" -n 1
;;
2)
safe_clean_directory
read -p "$(echo -e ${YELLOW}'按任意键继续...'${NC})" -n 1
;;
3)
echo -e "${GREEN}感谢使用目录清理工具!${NC}"
exit 0
;;
*)
echo -e "${RED}无效选项,请重新选择${NC}"
read -p "$(echo -e ${YELLOW}'按任意键继续...'${NC})" -n 1
;;
esac
done
}
# 脚本入口
if [ "$(id -u)" -eq 0 ]; then
echo -e "${RED}警告:您正在以root用户身份运行此脚本${NC}"
read -p "$(echo -e ${YELLOW}'是否继续?(y/N): '${NC})" root_confirm
if [[ ! $root_confirm =~ [Yy] ]]; then
echo -e "${GREEN}已退出程序${NC}"
exit 0
fi
fi
main_menu2,加密脚本方法,使用 gzexe 工具加密
gzexe 是系统自带的工具,使用简单但安全性稍低。
加密脚本:
gzexe your_script.sh
加密后原文件会被备份为 your_script.sh~。
3,创建桌面快捷方式
为了让加密后的脚本更方便使用,你可以在桌面创建一个 .desktop 文件:
在 ~/Desktop/ 目录下创建文件,例如 clean_folder.desktop
文件内容如下:
[Desktop Entry] Version=1.0 Type=Application Name=清理文件夹 Comment=安全清理指定目录 Exec=/path/to/your_encrypted_script Icon=utility Terminal=true
记得给这个文件添加可执行权限:chmod +x ~/Desktop/clean_folder.desktop
目录 返回
首页