【发布时间】:2018-09-06 07:15:44
【问题描述】:
我需要根据父目录创建目录
例如:
如果我有如下项目
project1
-File1
-Makefile
在make文件中我想做如下的事情
mkdir project1
然后它应该看起来像
project1
-File1
-Makefile
-project1
但我想动态地执行此操作,即mkdir parent folder,因为假设在 makefile 中我不知道父文件夹的名称是什么。是否可以?它应该是带有父文件夹名称的空文件夹。
作为先决条件,它应该始终有父文件夹
我尝试了以下建议:
更新
all: build
build:
mkdir $(basename "$PWD")
这创建了以下内容:
project1
-File1
-Makefile
-WD
这样在root下创建了一个文件夹,可以,但是名字是WD,打错了,应该是project1
【问题讨论】:
-
mkdir $(basename "$PWD")? -
您要创建当前文件夹的父文件夹吗?但是它已经存在了,否则你不能在当前文件夹中......我不明白。
-
@RenaudPacalet - 我想用
parent folder的name创建另一个空文件夹,但假设我没有名字,我只知道我需要上一层才能阅读名称,然后创建它 -
@Cyrus - 我现在试试,另外我应该如何将名称放入变量中?
-
@shopiaT:Cyrus 解决方案几乎是正确的,只需将
$符号加倍("$$PWD")或使用"$(PWD)"或"$$(pwd)"。但它有两个缺点: 1. 它调用 shell,而在大多数情况下不需要这样做 2. 只有当您从 Makefile 所在的目录调用 make 时,它才有效。有关详细信息,请参阅我的答案。
标签: linux bash unix makefile gnu-make