Dav*_*osh 5 bash terminal makefile
我有一个makefile将JavaScript文件连接在一起,然后运行该文件uglify-js来创建一个.min.js版本.
我目前正在使用此命令查找并连接我的文件
find src/js -type f -name "*.js" -exec cat {} >> ${jsbuild}$@ \;
Run Code Online (Sandbox Code Playgroud)
但它首先在目录中列出文件,这使得大量的意义,但我希望它列出目录上方.js文件中的src/js文件,以避免我的undefinedJS错误.
无论如何要做到这一点或?我有一个谷歌周围,看到了sort命令和-s标志,find但它有点超过我的理解在这一点!
[编辑]
最终的解决方案与接受的答案略有不同,但它被标记为已接受,因为它给我带来了答案.这是我使用的命令
cat `find src/js -type f -name "*.js" -print0 | xargs -0 stat -f "%z %N" | sort -n | sed -e "s|[0-9]*\ \ ||"` > public/js/myCleverScript.js
Run Code Online (Sandbox Code Playgroud)
可能的解决方案:
find获取文件名和目录深度,即find ... -printf "%d\t%p\n"sort -n测试:
不排序:
$ find folder1/ -depth -type f -printf "%d\t%p\n"
2 folder1/f2/f3
1 folder1/file0
Run Code Online (Sandbox Code Playgroud)
与排序:
$ find folder1/ -type f -printf "%d\t%p\n" | sort -n | sed -e "s|[0-9]*\t||"
folder1/file0
folder1/f2/f3
Run Code Online (Sandbox Code Playgroud)
你需要的命令看起来像
cat $(find src/js -type f -name "*.js" -printf "%d\t%p\n" | sort -n | sed -e "s|[0-9]*\t||")>min.js
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |