noway noway - 1 year ago 167
Linux Question

Find and rename a directory

I am trying to find and rename a directory on a linux system.

the folder name is something like :


is consistent but the numbers change every time.

I tried this:

find . -type d -name 'thefoldername*' -exec mv {} newfoldername \;

The command actually works and rename that directory. But I got an error on terminal saying that there is no such file or directory.

How can I fix it?

Answer Source

It's a harmless error which you can get rid of with the -depth option.

find . -depth -type d -name 'thefoldername*' -exec mv {} newfoldername \;

Find's normal behavior is to process directories and then recurse into them. Since you've renamed it find complains when it tries to recurse. The -depth option tells find to recurse first, then process the directory after.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download