你是不是也这样:每天要手动压缩一堆照片、清空下载文件夹、检查服务器磁盘空间、定时备份微信聊天记录(导出的txt)、或者给几十个文件批量重命名?别忍了,写个Shell脚本,3分钟写完,以后点一下就自动跑完。
1. 自动清理「下载」文件夹
下载文件夹越堆越满,又懒得一个个删?这个脚本帮你删掉7天前的普通文件(不碰文件夹和隐藏文件):
#!/bin/bash
find ~/Downloads -type f -mtime +7 -delete保存为 clean_downloads.sh,终端里运行:chmod +x clean_downloads.sh && ./clean_downloads.sh。想每周自动执行?加到系统定时任务里就行。
2. 批量给照片加日期水印
手机拍的照片没时间戳,发朋友圈又想显专业?用ImageMagick一行命令搞定(先装:brew install imagemagick 或 sudo apt install imagemagick):
#!/bin/bash
for img in *.jpg *.jpeg *.png; do
[ -f "$img" ] && convert "$img" -gravity SouthEast -pointsize 16 -fill white -annotate +10+10 "$(stat -f "%Sm" -t "%Y-%m-%d %H:%M" "$img" 2>/dev/null || stat -c "%y" "$img" | cut -d' ' -f1,2)" "watermarked_$img"
done跑完,所有照片右下角都带拍摄时间,清爽又实用。
3. 微信导出文本自动归档
微信电脑版导出的聊天记录是按天分文件的,比如 chat_2024-03-12.txt,但全堆在桌面太乱。这个脚本按月份建文件夹,自动归类:
#!/bin/bash
mkdir -p wechat_archive
for f in chat_*.txt; do
if [[ -f "$f" ]]; then
month=$(echo "$f" | cut -d'_' -f2 | cut -d'-' -f1,2)
mkdir -p "wechat_archive/$month"
mv "$f" "wechat_archive/$month/"
fi
done下次导出完,双击运行,秒变整齐。
4. 查看谁在偷偷占你磁盘
电脑突然变卡、提示“磁盘空间不足”?不用开各种图形工具,终端里跑这一段,立刻看到最大的10个文件夹:
du -sh ~/Library/Caches/* 2>/dev/null | sort -hr | head -10
du -sh ~/.cache/* 2>/dev/null | sort -hr | head -10复制粘贴就能用,Mac 和 Linux 都支持。删掉几个G的缓存包,立马松快。
5. 给文件名统一加前缀(比如加【已处理】)
领导说“把今天交的文档都标上【已审核】”,你真打算一个一个改?试试这个:
#!/bin/bash
for f in *.docx *.pdf *.xlsx; do
[ -f "$f" ] && mv "$f" "【已审核】$f"
done放在文档目录下,运行即生效。想改成【20240420】?只改引号里的内容就行。
Shell脚本不是程序员专利——它就像一把多功能瑞士军刀,小问题自己动手,比等别人教、比搜教程省一半时间。每个脚本都不超过10行,复制过去改两处路径或关键词,马上能用。生活里的重复劳动,真没必要亲手干第二遍。