2014-01-09 16 views
0

我在我的應用程序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 "*.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 

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

在find之外改變命令不能改變'find'返回的內容。它可以改變find的返回值對操作是有效的(因爲'mv'和'cp'可以對目錄做一些有意義的事情,而'cat'則不能)。如果你手動執行'find'命令,你會得到什麼?它看起來像你期望的?同樣,'mv'和'cp'都不會在默認情況下爲stdout寫入任何有意義的內容,所以您在這些行上的重定向不正確。 –

+0

@EtanReisner查找my_directory/-name「.filetype」-type f(-path'。*/* /'-prune -o -print)返回我想要的(僅在當前目錄中的文件) – Kevin

+0

@EtanReisner在makefile只會連接這些文件,由於某些原因,mv和cp也在子目錄中查找,>是一個錯誤,我沒有在我的原始文件中 – Kevin

回答

0

如果你只想在一個目錄中的文件,你爲什麼要做這些瘋狂的發現?難道你不能只寫:

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

?? ??

相關問題