Bash以递归方式在每个目录上执行命令

Arn*_*Roa 2 linux bash console

我有一个目录,里面有很多子目录,我想在每个子目录上执行一个命令.

我想做的是跑'svn up'

这是我到目前为止所尝试的

find . -type d -maxdepth 1 -exec svn "up '{}'" \;
Run Code Online (Sandbox Code Playgroud)

for dir in * do cd $dir; svn up; cd ..;
Run Code Online (Sandbox Code Playgroud)

到目前为止他们都没有工作(我没有运气就试过很多东西)

koj*_*iro 5

你只需要在glob上使用尾部斜杠:

for d in */; do # only match directories
  ( cd "$d" && svn up ) # Use a subshell to avoid having to cd back to the root each time.
done
Run Code Online (Sandbox Code Playgroud)