首页 > 解决方案 > 仅显示当前目录,而不是所有路径,并在 makefile 中使用它们在 c 中 tar

问题描述

我想创建“make tar”来从我这样做的目录中制作 tar.gz 文件

KATBIEZ = `basename $(PWD)`

然后我清理,因为我不想拥有 .oi .x 文件,只有 c

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

这是制造焦油

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

问题是在 $(KATBIEZ) 我有例如“home/Mark/New_Folder/Program10”我只想有 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

你有什么主意吗?

标签: makefiletar

解决方案


你需要的是运行basename

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

要进行故障排除,请运行此 makefile:

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

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

并粘贴结果。


推荐阅读