只显示当前目录,而不是所有的路径,并在makefile中使用它们在c中进行tar处理。

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

我想创建 "make tar",从目录中制作tar.gz文件,我这样做。

KATBIEZ = `basename $(PWD)`

然后,我清理,因为我不想有.o i .x文件,只有c。

clean:
    rm -f a.out *~ *.o *.x

这是我做的焦油

tar: clean
    (cd ..; tar cvzf $(KATBIEZ).tar.gz $(KATBIEZ); ls -altr)

问题是,在$(KATBIEZ)中,例如 "homeMarkNew_FolderProgram10",我只想有Program10。

所以,与其说是

cd ..; tar cvzf `basename home/Mark/New_Folder/Program10`.tar.gz `basenamehome/Mark/New_Folder/Program10`; ls -altr

我想拥有

cd ..; tar cvzf Program10.tar.gz Program10/; ls -altr

你有什么想法吗?

makefile tar
1个回答
2
投票

你需要的是运行 basename :

KATBIEZ=$(shell basename "$(PWD)")

要排除故障,运行这个makefile:

KATBIEZ=$(shell basename "$(PWD)")

tar:
    ( cd ..; echo tar cvzf "$(KATBIEZ).tar.gz" "$(KATBIEZ)"; ls -altr )

并粘贴结果。

© www.soinside.com 2019 - 2024. All rights reserved.