I host many websites (most of them WordPress) and I have a plugin I add for my clients in /mu-plugins/. It’s just some standard settings I want across all sites, including a menu item in the admin, like WPEngine, where my clients can click and read about NevTec Hosting, request help, etc. I have a few sites per server.

As you know, it’s a standard folder structure…and updating my client’s /mu-plugins/functions.php file can be a pain to go to Transmit and go through each /siteA.com/wp-content/mu-plugins, /siteB.com/wp-content/mu-plugins, etc, and update the functions.php file if I update it. Although I’m talking about these commands specifically for my WordPress setup, they can be used for any set up, including a non-website Linux set up – anywhere you’d want to update the contents from one file to multiple that follow the same hierarchy.

These took me a few hours to figure out how to get the commands to work as I was wanting. Hopefully these tips can save someone some time!

Situation: Updating one file (functions.php) in /mu-plugins/ for multiple WordPress clients on the same server

If you have a unique file name, you can simplify the command slightly, but if you’ve ever used WordPress, you know there is a functions.php for any theme and potentially some plugins too. I just wanted to target functions.php specifically in the /mu-plugins/ directory.

I updated one site’s /mu-plugins/functions.php and CDed to that directory in Terminal. Running this command copies (and overwrites) the functions.php in the /mu-plugins/ directory for any of my other sites on this server.

NOTE: The “! -path *$(pwd)*” part of the command is saying exclude the current directory

Update the file you want on one site (/mu-plugins/functions.php in my case)

In the Terminal, CD to that directory

Run the command – it’s saying to look for other functions.php files in the /mu-plugins/ directory of your web folder, and it’s copying the contents of functions.php from the current site you are CDed to in the Terminal

Situation: Similar to above, but what if you have more than just one file you want to copy?

I ran into a situation where I had some directories and files within those that I also wanted to copy to the other sites.

find /var/www -path */mu-plugins ! -path *$(pwd)* -exec cp -r * {} \;

Update the files you want on one site (/mu-plugins/ and all files and subdirectories in my case))

In the Terminal, CD to that directory

Run the command – it’s saying to look for other /mu-plugins/ directories in your web folder, and it’s copying the contents of the /mu-plugins/ directory from the current site you are CDed to in the Terminal

Situation: Deleting specified files from a specific hierarchy

This is another helpful command to delete any files and/or directories, but only within a certain folder structure. Instead of running: rm -r test* (which would delete all files and directories starting with “test” from the current directory you’re in and any child directories, this command deletes only those “test” files and folders within a the /mu-plugins/ directory.

find /var/www -path */mu-plugins/test* -exec rm -R {} \;

Share story

TJ Nevis

Expert at knowing a little bit about everything - or so I like to think. Husband, business owner, web developer, car enthusiast, animal lover, tinkerer. I run a web development/technology company, NevisTechnology.com where I'm living my dream. Need hosting services, a website, blog, Blogger to WordPress conversion or an e-commerce store?Let's talk!