Bash MAKEFILE-将当前目录中的文件复制/移动到另一个文件夹

Bash MAKEFILE-将当前目录中的文件复制/移动到另一个文件夹,bash,shell,unix,makefile,Bash,Shell,Unix,Makefile,我在我的应用程序中这样做 cat $(shell find $(MY_DIRECTORY) -name "*.filetype" -type f \( -path '.*/*/*' -prune -o -print \)) > $(MY_DIRECTORY)/files-concatenated.css 这成功地连接了当前目录中的所有文件(不包括子目录-这正是我所需要的) 但当我这么做的时候 mv $(shell find $(MY_DIRECTORY) -name "*.fil

我在我的应用程序中这样做

cat $(shell find $(MY_DIRECTORY) -name "*.filetype" -type f \( -path '.*/*/*' -prune -o -print \)) > $(MY_DIRECTORY)/files-concatenated.css
这成功地连接了当前目录中的所有文件(不包括子目录-这正是我所需要的)

但当我这么做的时候

    mv $(shell find $(MY_DIRECTORY) -name "*.filetype" -type f \( -path '.*/*/*' -prune -o -print \)) > $(MY_DIRECTORY)/files-collected
还是这个

    cp $(shell find $(MY_DIRECTORY) -name "*.filetype" -type f \( -path '.*/*/*' -prune -o -print \)) > $(MY_DIRECTORY)/files-collected
它会到处寻找(包括子目录),我如何使它也排除子目录)

*编辑:我使用

    mv $(shell find $(MY_DIRECTORY) -name "*.filetype" -type f \( -path '.*/*/*' -prune -o -print \)) $(MY_DIRECTORY)/files-collected


如果你只想把文件放在一个目录中,为什么要做这些疯狂的查找工作?你就不能写:

mv $(MY_DIRECTORY)/*.filetype $(MY_DIRECTORY)/files-collected

在查找外部更改命令无法更改
find
返回的内容。它可以更改从find返回的对操作有效的内容(因为
mv
cp
都可以对目录执行有意义的操作,而
cat
则不能)。如果手动运行
find
命令,会得到什么?看起来像你期望的那样吗?另外,默认情况下,
mv
cp
都不会向标准输出有意义的内容,因此这些行上的
重定向是不正确的。@EtanReisner find my_directory/-name.filetype“-type f(-path.*/'-prune-o-print)会返回我想要的内容(仅在当前目录中的文件)@EtanReisner在makefile中执行cat只会连接这些文件,出于某种原因,mv和cp也会在子目录中查找,>是一个错误,我的原始文件中没有它。mv和cp只查看您提供给它们的内容。如果您为它们提供与cat相同的参数,则它们应在相同的文件上操作。如果你给猫一个目录,它会对你大喊大叫,忽略那个参数。如果您给mv/cp一个目录,它将mv/cp它。如果您使用
mv-v
cp-v
,是否可以显示find的输出以及您得到的结果?另外,如果您希望find忽略所有子目录,那么使用
-maxdepth 1
会不会更简单?
mv $(MY_DIRECTORY)/*.filetype $(MY_DIRECTORY)/files-collected