我想对目录中所有级别上的所有文件执行命令。它可以包含任意数量的文件和子目录。即使这些子目录也可能包含任意数量的文件和子目录。我想用shell脚本来做这件事。因为我是这个领域的新手,任何人都可以建议我出路。
答案 0 :(得分:0)
您可以使用使用通配符(*)的递归命令,如下所示:
for dir in ~/dev/myproject/*; do (cd "$dir" && git status); done
如果要对单个文件应用命令,则应使用find命令并对其执行命令,如下所示:
find yourdirectory -type f -exec echo "File found: '{}'" \;
这是做什么的:
答案 1 :(得分:0)
您可以在“|”(管道)之后使用“find”命令和“xargs”。
示例:假设我要删除“Documents”目录中具有“.txt”扩展名的所有文件:
find Documents -iname *.txt |xargs rm -f
可帮助?
答案 2 :(得分:0)
使用find:
find -type f -exec COMMAND {} \;
-f仅将命令应用于文件,而不应用于目录。默认情况下,该命令是递归的。