其他
微信文件变成「只读」?我用 ChatGPT 找到了解决方法
▍二、监控文件变动:认识 fswatch 工具
(一)fswatch 工具的安装
(二)选择被监控的文件范围
types=("doc" "docx" "ppt" "pptx" "xls" "xlsx")
# 生成正则表达式
re=""
for i in ${types[*]};do re="$re|$i$";done
re=${re:1}
# 监控满足条件的文件变动
fswatch -e ".*" -EIi $re --event Created $path
(三)对监控的文件做出修改
# 如果该注释不存在或指定的路径不正确,则操作系统将尝试使用默认的解释器来执行脚本
#!/bin/bash
# 自定义路径,这里以 download 文件夹为例
# 实际上应该也可以直接修改为微信的缓存文件夹(可以通过右键点击微信内接收到的文件查看路径)
path="/Users/用户名/Downloads"
# 生成正则表达式,用于匹配文件
types=("doc" "docx" "ppt" "pptx" "xls" "xlsx")
re=""
for i in ${types[*]};do re="$re|$i$";done
re=${re:1}
# 修改环境变量,让后面的 read 能够逐行读取
IFS=$'\n'
# 监控添加文件的事件,将变动文件传递至下面的 chmod 命令
fswatch -e ".*" -EIi $re --event Created $path |
while read file;do
# 额外增加一个文件存在和不可写的判断,排除打开 Word 文档时产生的临时文件,避免报错
if [ -f $file ] && ! [ -w $file ];then
chmod 644 $file
fi
done
▍三、添加启动项文件:认识 launchd
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"[]>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.wxpermfix</string>
<key>ProgramArguments</key>
<array>
<string>/Users/[USERNAME]/bin/wxpermfix.sh</string>
</array>
<key>RunAtLoad</key>
<true />
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/wxpermfix.plist
替代方案:不自动启动也不是不可以
# 启动 xxx.sh,替换为正确路径即可
nohup xxx.sh >/dev/null 2>&1 &
# 关闭 xxx.sh,替换为正确文件名即可
pkill -f xxx.sh
责编:PlatyHsu