如何授予makefile复制文件夹的权限?

问题描述 投票:0回答:1

这里是代码:

    userPath=$(shell $$HOME)

    move:
        #what is the command?
        cp -r Minesweeper $(userPath)/

这是错误消息

/bin/sh: 1: /home/daniel: Permission denied
cp -r Minesweeper /
cp: cannot create directory '/Minesweeper': Permission denied
Makefile:10: recipe for target 'move' failed
make: *** [move] Error 1

确定在终端中执行的某些命令可以授予Makefile权限,但是我需要在Makefile中执行命令。

PS:我的ubuntu版本是ubuntu 18.04

ubuntu makefile
1个回答
2
投票

Makefile本身没有权限。错误消息指出运行此Makefile的用户]没有所需的特权。但这与权限无关。您会注意到该错误表明您无法写入根目录,这当然是您既不需要也不需要的(即使您认为自己也想要,也不应允许它写入)。

第一条错误消息是因为$(shell $$HOME)不是有效命令。有效命令看起来像$(shell echo "$$HOME");但实际上,这完全没有必要。

第二个错误是因为第一个错误,因为第一个赋值返回了一个空变量。

这里不需要$(shell ...)的原因是,运行命令的shell完全能够自行扩展$$HOME。实际上,make也是如此(尽管语法是${HOME}简单明了)。

move:
        cp -r Minesweeper ${HOME}/
© www.soinside.com 2019 - 2024. All rights reserved.