Shell MAKEFILE获取文件列表并加入
我试图收集一个特定类型的文件列表,并将它们连接到一个文件中,然后将它们放在我的应用程序的某个区域中,这就是它的外观Shell MAKEFILE获取文件列表并加入,shell,unix,terminal,makefile,Shell,Unix,Terminal,Makefile,我试图收集一个特定类型的文件列表,并将它们连接到一个文件中,然后将它们放在我的应用程序的某个区域中,这就是它的外观 FILETYPE_DIRECTORY = /mydirectory FILETYPE_SRCFILES = $(find $(FILETYPE_DIRECTORY)/ -type f -and -name '*.ft') filetype-collected: $(FILETYPE_SRCFILES) mkdir $(FILETYPE_DIRECTORY)/filety
FILETYPE_DIRECTORY = /mydirectory
FILETYPE_SRCFILES = $(find $(FILETYPE_DIRECTORY)/ -type f -and -name '*.ft')
filetype-collected: $(FILETYPE_SRCFILES)
mkdir $(FILETYPE_DIRECTORY)/filetype-collected;
cat $(FILETYPE_SRCFILES) > compressed.ft;
mv compressed.ft $(FILETYPE_DIRECTORY)/filetype-collected;
我得到的答复是
mkdir /mydirectory/filetype-collected;
cat > compressed.ft;
并且应用程序没有继续(没有加入任何文件类型),问题是什么-O也尝试了替换
cat $(FILETYPE_SRCFILES)
与
很抱歉,如果这真的是基本的,我是一个新的文件,可能不会工作。尝试:
FILETYPE_SRCFILES = $(shell find $(FILETYPE_DIRECTORY)/ -type f -and -name '*.ft')
而不是为FILETYPE\u SRCFILES
提供的。你也可以写这封信,这封信对我来说似乎更清晰,只需少走一步:
$(FILETYPE_DIRECTORY)/filetype-collected/compressed.ft : $(FILETYPE_SRCFILES)
mkdir $(dir $@)
cat $^ > $@
将
echo$(FILETYPE\SRCFILES)
添加到操作中会得到什么?在每个操作之前都有选项卡,是吗?(这里没有。)对于OP:当从$(shell…
函数赋值时,应该使用:=
,而不是=
。前者的效率要高得多(每次使用变量时使用后者,整个shell命令将从头开始重新运行)。为了安全起见,我会使用mkdir-p
,而不是mkdir
。
$(FILETYPE_DIRECTORY)/filetype-collected/compressed.ft : $(FILETYPE_SRCFILES)
mkdir $(dir $@)
cat $^ > $@