V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DT27
V2EX  ›  分享发现

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

  •  
  •   DT27 · 11 天前 · 1001 次点击

    系统是 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 /*%  
    
    10 条回复    2025-02-11 11:11:49 +08:00
    Wvg9eBo3U0c8BLd2
        1
    Wvg9eBo3U0c8BLd2  
       11 天前
    这就是时间机器的重要性了, 每天都会自动备份一次. 使用 mac 以来 ,从来没有丢过文件, 给足后悔的机会.
    DT27
        2
    DT27  
    OP
       11 天前
    @lolita89201 时间机器以前工作时开着,现在都是笔记本在床上用,我嫌插硬盘太麻烦,就关掉了。。。。。。
    这就打开= = 、
    还好只删了程序文件,麻烦点挨个重新找就行了。
    Wvg9eBo3U0c8BLd2
        3
    Wvg9eBo3U0c8BLd2  
       11 天前
    @DT27 #2 买个 NAS, 插 USB 也太不优雅了
    DT27
        4
    DT27  
    OP
       11 天前
    @lolita89201 NAS 有,但是电脑好久没出问题了,根本没想到要备份😂
    已经安排上了~~~
    DT27
        5
    DT27  
    OP
       11 天前


    = =、
    june4
        6
    june4  
       11 天前
    你这么写这个删除命令本来看着就很吓人,删除的根目录都是动态的
    DT27
        7
    DT27  
    OP
       11 天前
    @june4 接受教训了😂 再也不敢了
    newaccount
        8
    newaccount  
       11 天前
    还有一点,# 开头的注释不要放在行尾使用
    你不知道哪个玩意就坑你一下
    dallaslu
        9
    dallaslu  
       11 天前
    非常好的分享。也可以平时多攒几个 node_modules 目录,哈哈
    DT27
        10
    DT27  
    OP
       11 天前
    @newaccount 写代码注释习惯了= =、没想到到这不一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2929 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:25 · PVG 16:25 · LAX 00:25 · JFK 03:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.