我正在研究C内核,我想通过使用bash脚本文件来编译所有源代码。我需要知道如何做一个foreach循环,并且只得到扩展名为.c的文件,然后获取每个文件的文件名,以便我可以编译每一个文件。如何获取bash中的目录及其所有子目录中的文件?
1
A
回答
4
使用find
通过你的树 走,然后阅读器使用while read
名单:
find . -name \*.c | while read file
do
echo process $file
done
如果你想与文件做的动作也不是那么复杂 ,并且可以使用矿石表示或两个命令,您可以避免使用while
并使用find
本身做所有事情。对于您将使用-exec
:
find . -name \*.c -exec command {} \;
在这里,你写你的命令,而不是command
。
您还可以使用-execdir
:
find . -name \*.c -execdir command {} \;
在这种情况下command
将在找到的文件的目录(每个文件被发现)执行。
1
如果您使用GNU make
,你可以只使用make
内置功能的,具有使其成为一个独立的外壳的优势(但比慢find
为大树的缺点),这样做:
# Usage: $(call find-recursive,DIRECTORY,PATTERN)
find-recursive = \
$(foreach f,$(wildcard $(1)/*),\
$(if $(wildcard $(f)/.),\
$(call find-recursive,$(f),$(2)),\
$(filter $(2),$(f))))
all:
@echo $(call find-recursive,.,%.c)
相关问题
- 1. 统计目录及其子目录中的所有文件
- 2. 打印目录及其子目录中的所有文件
- 3. 如何在php中列出目录及其子目录的所有文件?
- 4. 读取目录中的所有文件,包括其子目录
- 5. 如何获取包含所有子目录文件的目录中的文件?
- 6. 读取目录及其子目录中的JSON文件
- 7. 如何获取ASP.NET Razor页面上的目录及其子目录中的所有文件的信息?
- 8. 如何在c目录及其子目录中搜索文件?
- 9. CMake:如何获取目录中所有子目录的名称?
- 10. 获取给定目录及其子目录中所有文件的路径和文件名
- 11. Unix。目录中所有文件的校验和及其子目录
- 12. 递归遍历目录及其子目录中的所有文件Qt
- 13. 快速列出目录及其所有子目录中的文件
- 14. 如何获取目录和文件名及其子文件夹
- 15. 如何将目录及其子目录中的所有文件复制到另一个目录?
- 16. Bash/Shell-将子目录中的所有文件移动到目标目录中?
- 17. 如何用C++删除目录及其中的所有文件?
- 18. 搜索目录中的所有目录/文件及其子目录中的可可
- 19. 列出目录+子目录中的所有文件和目录
- 20. 如何遍历目录和子目录中的所有文件
- 21. 如何列出iPhone SDK中的所有文件夹及其子目录/文件?
- 22. 以非递归方式获取目录及其子目录中的所有文件
- 23. 获取当前目录中的所有文件和目录python
- 24. 我如何获得目录和子目录中的所有文本文件?
- 25. 如何grep LINUX中目录及其所有子目录的文件中的字符串?
- 26. 获取目录中的所有文件夹和子文件夹
- 27. 获取目录中的所有文件和所有文件的所有子目录下
- 28. 获取目录和子目录中的所有.gz文件的大小 - python
- 29. vim有没有办法打开目录及其所有子目录中的所有.C和.H文件?
- 30. 如何获取cobol中的目录中的所有文件
我应该用我的目录名称替换-name吗? – user1547531 2012-07-24 04:54:21
编号'-name'是一个传递给find命令的选项,该命令表示按名称搜索。 '.'代表'当前目录',所以你应该从项目根目录运行这个命令或者用项目根目录的路径代替'.'。 '* .c'表示文件名称匹配'anthing后面跟着.c'的文件。因此,如果你的项目在/ foo/bar中并且你想要找到.h文件,使用下面的代码:'find/foo/bar -name * .h' – jahroy 2012-07-24 05:00:28
@jahroy:谢谢jahroy,这正是我想说的:) – 2012-07-24 05:10:01