首页 > 解决方案 > makefile 中冒号后的管道:/home/.ssh/config: | /home/.ssh

问题描述

|下面的makefile是什么意思?

/home/.ssh:
    install -d -m 700 /home/.ssh

/home/.ssh/config: | /home/.ssh
    echo "$$CONFIG" >> $@

/home/.ssh/credentials: | /home/.ssh
    echo "$$CREDENTIALS" >> $@

谢谢

标签: makefilepipe

解决方案


管道字符将与先决条件规则的关系声明为仅订单¹类型。在这里,如果/home/.ssh不存在,无论如何都会创建它,但如果它的时间戳发生变化,其他任何事情都不会因此而发生。


¹:https ://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html


推荐阅读