My Shell Workflow: Executing a command in lots of directories.

Updated on Jan 06, 2018

Problem

You want to run a shell command in many directories. For example, in my case, I wanted to execute a shell command in lots of directories(approx. 200) to clean up build files.

Solution

Writing a for-loop and running it on the shell did the trick for me.

for d in ./*/ ; do (cd "$d" && mvn clean); done

Explanation

The above for-loop would run cd "$d" && mvn clean in each item of the directory list defined by the path ./*/. $d holds the directory name. You can be creative in defining the list of directories using a complex glob as well.

I hope this helps you as well.

Did you find this post useful? Show some love!
DISCUSSION (6)

find . -name pom.xml -exec mvn clean .... \;

Thanks! find is something I wish to use more.

Very nearly the same, here's my "inall" script:

$ cat ~/bin/inall
#!/bin/sh
# runs given command (all arugments) in each directory of pwd
# example: in a workspace directory with many subfolders:
# $ inall git status

echo $@
for dir in ${PWD}/*
do
    if [ -d $dir ]; then
        echo ""
        echo "$dir"
        cd $dir && $@
        cd - > /dev/null
    fi
done

This lil snippet of code is golden. Thanks for sharing!

Classic DEV Post from Jan 12

My Mac Setup

Maybe I should start a series called “Not just a Gist”, as I’m slowly convertin...

READ POST
Follow @nickytonline to see more of their posts in your feed.
Shriharsh
Member since Mar 17, 2017
More from @shriharshmishra
"Behind the Corporate Proxy"
#productivity #httpproxy #vagrant #docker
"My Shell Workflow: Using bash history"
#shell #bash #productivity
Trending on dev.to
How to Improve Your Development Experience
#beginners #career #development #productivity
Shell Aliases For Easy Directory Navigation #OneDevMinute
#onedevminute #devtips #shell #zsh
What To Do When You Don't Know What To Do
#softwaredevelopment #beginners #productivity
Not feeling motivated? Don't beat yourself up
#productivity
What is PHP Airbnb Clone Script?
#php #opensource #productivity #webdev
7 Ways Continuous Delivery Helps Build a Culture of Learning
#continuousdelivery #devops #productivity #agile
My top dev podcasts
#podcast #productivity #dev
#OneDevMinute: Go back to the Previous Directory
#onedevminute #devtip #bash #zsh