Oct 11, 2023 4 min read

How to Rename Directories in Linux

Rename directories in Linux with our step-by-step tutorial. A task that allows you to change the name of directory without affecting content.

Rename Directories in Linux
Table of Contents

Introduction

Before we begin talking about how to rename directories in linux, let's briefly understand - What is Linux?

Linux refers to an open-source operating system kernel that serves as the foundation for numerous operating systems known as Linux distributions. Linux was created by Linus Torvalds in 1991 and is based on the Unix operating system. It is known for its stability, security, and flexibility.

In the Linux operating system, renaming directories is a common task that allows you to change the name of a directory without affecting its content or location. This process is useful for organizing files and directories, making them more meaningful, or adapting them to a new naming convention. Renaming directories can be accomplished through various methods, including command-line tools or graphical file managers.

In this tutorial, you will use the command line to rename directories. We will also address a few FAQs rename directories in Linux.

Rename Directories

The mv (short of move) command can be used to rename or move files and directories from one location to another in Linux and Unix-like operating systems.

The mv command for transferring directories has the following syntax:

mv [OPTIONS] source destination

To rename the directory dir1 to dir2, for example, use the following command:

mv dir1 dir2

When using the mv command to rename folders, you must use exactly two arguments. The current name of the directory is the first argument, and the new name is the second.

It's vital to remember that if dir2 already exists, dir1 will be relocated dir2.

You must supply either the absolute or relative path to rename a directory that is not in the current working directory:

mv /home/user/dir1 /home/user/dir2

Rename Multiple Directories

It's easy to rename a single directory, but renaming numerous folders at once might be difficult, especially for new Linux users.

It's unusual that you'll need to rename numerous directories at once.

Using mv to rename several directories

Only one file can be renamed at a time with the mv command. It can, however, be used in conjunction with other commands to rename several files at once, such as find or inside loops.

Here's an example of how to append the current date to the names of all directories in the current working directory using the Bash for loop:

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

Let's take a look at the code one line at a time:

1) The first line starts a loop that iterates through all the files in the list.
2) The second line determines whether the file is a directory.
3) The current date is appended to each directory on the third line.

Here's an example of how to do the same thing with mv and find:

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;

Using the -exec option, the search command sends all directories to mv one by one. The name of the directory that is presently being processed is represented by the string.

Renaming several directories using mv is not an easy operation, as you can see from the examples, and it necessitates a strong understanding of Bash scripting.

Rename multiple directories with rename

Multiple files and folders can be renamed with the rename command. Because it requires a basic understanding of regular expressions, this command is more sophisticated than mv.

The rename command comes in two flavors, each with its own syntax. We're going to use the rename command in Perl. The files are renamed using the perl regular expression provided.

The following example demonstrates how to use underscores to replace spaces in the names of all folders in the current working directory:

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

To be safe, use the -n option with rename to print the names of the renamed folders without renaming them.

Another example of how to lowercase directory names is as follows:

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

FAQ's on how to rename directories in linux

Can I use absolute or relative paths while renaming directories?

Yes, you can use either absolute or relative paths when renaming directories. Provide the appropriate path to the directory you want to rename.

What if the new name already exists in the same location?

If the new name already exists in the same location, the mv command will overwrite the existing directory with the renamed directory. Ensure you double-check before proceeding to avoid data loss.

Can I rename multiple directories at once?

Yes, you can rename multiple directories at once by specifying their names as arguments to the mv command. Separate each directory name with a space.

How can I preview the changes before renaming a directory? 

To preview the changes before renaming, you can use the ls command with the desired directory path. It will display the directory's content and confirm its availability.

Can I use the Tab key for autocompletion while renaming directories? 

Yes, you can use the Tab key for autocompletion when entering directory names. It helps to avoid typing errors and ensures accuracy.

Does renaming a directory affect its subdirectories and files?

No, renaming a directory does not affect its subdirectories and files. Only the name of the directory itself is modified.

Can I rename a directory while preserving its timestamps? 

Yes, the mv command supports the preservation of timestamps by using the -p flag. For example, mv -p old_directory new_directory will retain the original timestamps of the directory.

Conclusion

The ability to rename directories in Linux is a fundamental task that allows users to manage and organize their file systems effectively. By using the mv command or graphical file managers, users can easily change the names of directories.

By understanding and applying the techniques and considerations discussed in the tutorial, users can efficiently and effectively manage their directory names in the Linux operating system.

If you have any queries, please leave a comment below and we’ll be happy to respond to them.

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to DevOps Blog - VegaStack.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.