如果您想递归到目录,对其中找到的每个文件执行命令,我会使用find
我认为,命令,而不是使用 shell 脚本编写任何内容。
该命令可以接收很多参数,例如type
过滤返回的文件类型,或者exec
对每个结果执行命令。
例如,要查找我当前所在目录下的目录:
find . -type d -exec echo "Hello, '{}'" \;
这会让我得到类似的东西:
Hello, '.'
Hello, './.libs'
Hello, './include'
Hello, './autom4te.cache'
Hello, './build'
Hello, './modules'
同样查找当前目录下的文件:
find . -type f -exec echo "Hello, '{}'" \;
这会让我得到这样的东西:
Hello, './config.guess'
Hello, './config.sub'
Hello, './.libs/memcache_session.o'
Hello, './.libs/memcache_standard_hash.o'
Hello, './.libs/memcache_consistent_hash.o'
Hello, './.libs/memcache.so'
Hello, './.libs/memcache.lai'
Hello, './.libs/memcache.o'
Hello, './.libs/memcache_queue.o'
Hello, './install-sh'
Hello, './config.h.in'
Hello, './php_memcache.h'
...
有人会说“这不是 shell”...但是为什么要重新发明轮子呢?
(并且,在某种程度上,它是外壳^^)
欲了解更多信息,您可以查看:
man find
- 谷歌找到了很多教程,例如,Unix 查找命令教程 http://www.softpanorama.org/Tools/Find/find_mini_tutorial.shtml