分享个悲剧,执行 make 脚本时把 Applications 文件夹删了

48 天前
DT27  DT27

系统是 macOS 。

vscode 里写 Makefile 脚本:

include .env

clean:
	@rm -Rf ./data/mysql
	@rm -Rf $(MYSQL_DUMPS_DIR)/*
	@rm -Rf ./web
	@rm -Rf ./log
	@rm -Rf ./etc/ssl/*

.env 文件:

MYSQL_DUMPS_DIR=data/backup #数据库备份文件目录

结果,执行 make clean 后控制台提示:

rm: /Applications/Utilities/Adobe Creative Cloud Experience/CCXProcess.app/Contents/Resources/panels/com.adobe.ccx.start-2.2.1/Contents/js/locales/eo.bundle.js: Permission denied

我才知道完蛋了。。。赶紧 Ctrl+C ,软件没了大半。。。

正在运行的 vscode 跟浏览器都给我删完了,真神奇。。。


我又写了个 printf 测试

aaa:
	@printf $(MYSQL_DUMPS_DIR)/*

执行结果一点问题没有:

dt27@DT27-RMBP oa % make aaa
./data/backup%  

我不理解。。。 .env 里的变量删掉执行结果:

dt27@DT27-RMBP oa % make aaa
/Applications% 

最后发现是 MYSQL_DUMPS_DIR=data/backup #数据库备份文件目录 备注前的空格惹的祸。。。

printf "$(MYSQL_DUMPS_DIR)/*"

#前不带空格

dt27@DT27-RMBP oa % make aaa
data/backup/*%                                                                     ```

#前带空格

dt27@DT27-RMBP oa % make aaa
data/backup /*%  
1240 次点击
所在节点   分享发现  分享发现
10 条回复
Wvg9eBo3U0c8BLd2
Wvg9eBo3U0c8BLd2
48 天前
这就是时间机器的重要性了, 每天都会自动备份一次. 使用 mac 以来 ,从来没有丢过文件, 给足后悔的机会.
DT27
DT27
48 天前
@lolita89201 时间机器以前工作时开着,现在都是笔记本在床上用,我嫌插硬盘太麻烦,就关掉了。。。。。。
这就打开= = 、
还好只删了程序文件,麻烦点挨个重新找就行了。
Wvg9eBo3U0c8BLd2
Wvg9eBo3U0c8BLd2
48 天前
@DT27 #2 买个 NAS, 插 USB 也太不优雅了
DT27
DT27
48 天前
@lolita89201 NAS 有,但是电脑好久没出问题了,根本没想到要备份😂
已经安排上了~~~
DT27
DT27
48 天前


= =、
june4
48 天前
你这么写这个删除命令本来看着就很吓人,删除的根目录都是动态的
DT27
48 天前
@june4 接受教训了😂 再也不敢了
newaccount
47 天前
还有一点,# 开头的注释不要放在行尾使用
你不知道哪个玩意就坑你一下
dallaslu
47 天前
非常好的分享。也可以平时多攒几个 node_modules 目录,哈哈
DT27
47 天前
@newaccount 写代码注释习惯了= =、没想到到这不一样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1110436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX