如何使用Makefile使文件可执行

时间:2015-02-05 09:23:03

标签: perl makefile

我想使用Makefile复制特定文件,然后使该文件可执行。如何才能做到这一点? 我要复制的文件是.pl文件。 对于复制,我使用的是通用cp -rp命令。这是成功完成的。但现在我想使用Makefile

使这个文件可执行

1 个答案:

答案 0 :(得分:2)

使用cpchmod是一种不好的做法,而是使用install命令。

all:
    install -m 0777 hello ../hello

您可以在安装时使用-m选项来设置权限模式,甚至注意到使用install不仅会保留权限,还会保留文件的所有者。

你仍然可以相应地使用chmod,但这将是一个不好的做法

all:
    cp hello ../hello
    chmod +x ../hello

更新:install vs cp

  1. cp只会复制具有当前权限的文件,不仅可以安装副本,还可以将perms / ownership更改为arg标志。 (这是你的要求)
  2. 一个显着的区别是cp截断目标文件并开始将数据从源复制到目标文件中。另一方面,安装首先删除目标文件。 这很重要,因为如果目标文件已经在使用中,那么在您使用该文件的情况下可能会发生不好的事情,以防您在其上面添加新文件。例如覆盖正在运行的可执行文件可能会失败。截断现有进程正在忙于读/写的数据文件可能会导致非常奇怪的行为。如果您只是首先删除目标文件,就像安装一样,事情会像往常一样继续 - 在所有进程关闭该文件之前,实际上不会删除已删除的文件。[source]
  3. 有关详情,请查看以下内容,

    install vs. cp; and mmap

    How is install -c different from cp