use*_*925 0 bash recursion file
我目前有一个处理目录中所有文件的小脚本。我希望这也递归处理子文件夹中的所有文件。关于如何做到这一点的任何想法?我目前的代码是:
#!/bin/bash
for file in ./input/*
do
do_something "$file"
done
Run Code Online (Sandbox Code Playgroud)
您可以使用find:
find input/ -type f -exec do_something {} \;
Run Code Online (Sandbox Code Playgroud)
从man页面:
find 实用程序针对列出的每个路径递归地降低目录树,根据树中的每个文件计算表达式(由下面列出的
primaries和组成operands)。
为了清楚起见,这里有一些man关于exec和的页面的更多细节{}:
-exec 实用程序 [参数 ...] ;
如果名为实用程序的程序返回零值作为其退出状态,则为真。
可选参数可以传递给实用程序。表达式必须以分号 (
;)结尾。如果从 shell 调用 find ,如果 shell 将分号视为控制运算符,则可能需要引用分号。如果该字符串{}出现在实用程序名称或参数中的任何位置,则它将被当前文件的路径名替换。实用程序将从执行 find 的目录中执行。实用程序和参数不受 shell 模式和构造的进一步扩展的影响。
希望这可以帮助 :)