How to Rename a File in Linux

A Linux terminal window on a dark background, displaying command line text and a stylized graphic of the Debian swirl logo.

When you purchase through links on my site, I may earn an affiliate commission. Here’s how it works.

    Table of Contents   Show

    In Linux, everything, and I mean everything, is a file. Your photos, your music, your apps, even your system settings – all files. So, knowing how to navigate, manage, and yes, rename those files is crucial.

    Now, you might be used to just right-clicking and hitting "rename" like you do on Windows or macOS. But in Linux, we like to do things a little differently. We use the command line, and specifically, a command called mv.

    This little command is very versatile – it can move files from one location to another, and it can rename them.

    In this guide, I'll break down how to use the mv command to rename files like a pro. Don't worry if you're new to the terminal; I'll keep it super simple, step-by-step.

    By the end, you'll be renaming files faster than you can say "sudo apt update."

    How to Rename a Single File in Linux Using the mv Command

    Okay, so let's get hands-on with the mv command. The basic syntax is super straightforward, almost like plugging in a USB-C cable – it only goes in one way.

    You just type mv, followed by the current name of the file, then the new name you want to give it.

    Let's say you have a file named "report.txt" but you want to change it to "draft.txt". In your terminal, you'd type:

    mv report.txt draft.txt

    Hit enter, and voilà! Just like that, your file is renamed. Now, here's a crucial thing to remember: mv can be a little aggressive.

    If you try to rename a file to a name that already exists, it'll just overwrite the existing file without even asking. Think of it like accidentally saving a new version of a file over the old one – poof, the original is gone.

    So, before you start renaming things, make sure you're not going to accidentally delete something important.

    Double-check those filenames, just like you'd double-check your pocket for your phone before you leave the house. We'll cover some ways to avoid accidental overwrites later on, but for now, proceed with caution!

    How to Rename Multiple Files in Linux Using the mv Command

    Alright, so renaming single files is cool and all, but what if you need to rename a whole bunch of them? Like, imagine having to rename hundreds of photos from your last vacation. Doing that one by one would take forever, right? That's where wildcards come into play.

    You can think of wildcards like those search filters you use on your phone. You know, when you type in a few letters and it shows you all the matching contacts or apps?

    In Linux, we've got these special characters that help us target multiple files at once. Here's a breakdown of the most common ones:

    • `` (asterisk): This guy matches any number of characters. So, .txt would match all files ending in ".txt".

    • ? (question mark): This matches exactly one character. So, image_?.jpg would match "image_1.jpg", "image_2.jpg", and so on, but not "image_10.jpg".

    • [ ] (brackets): These let you specify a range of characters. For example, [abc] matches any file with "a", "b", or "c" in that position.

    Now, let's see these wildcards in action with mv:

    To rename all your .txt files to .doc, you'd use:

    mv *.txt *.doc

    To rename "image_1.jpg", "image_2.jpg", etc. to "picture_1.png", "picture_2.png", and so on, you'd use:

    mv image_?.jpg picture_?.png

    How to Rename Multiple Files in Linux Using the rename Command

    For even more complex renaming tasks, Linux has another tool up its sleeve: the rename command. This one's giving you fine-grained control over how files are renamed.

    For example, let's say you want to replace the word "old" with "new" in all your .txt files. With rename, you can do that with this single command:

    rename 's/old/new/' *.txt

    This might seem a bit cryptic at first, but trust me, it's incredibly powerful once you get the hang of it.

    We won't dive too deep into rename in this post, but just know that it's there if you need that extra level of control.

    With wildcards and the rename command, you can manage and rename files in bulk, saving you tons of time and effort.

    How to Safely Rename a File in Linux Using the -i Option

    So we've covered a lot of ground, but remember how I mentioned that mv can be a bit of a bulldozer when it comes to overwriting files? Yeah, that's something you definitely want to avoid. Luckily, there's a safety net built right into the mv command: the -i option.

    You can think of -i as that "are you sure?" prompt you get before deleting something important on your phone. It basically puts mv into "careful mode." When you use the -i option, mv will ask for your confirmation before overwriting any existing files. It acts as a second layer of protection, just in case you fat-fingered a filename or something.

    Here's how it works:

    mv -i old_filename new_filename

    If "new_filename" already exists, the terminal will pop up a message like, "overwrite 'new_filename'?" You then have the choice to type "y" for yes, overwrite it, or "n" for no, keep the original. It's a simple little feature, but it can save you from a lot of headaches.

    Imagine you're renaming a bunch of files and you accidentally type the same new name for two different files. Without the -i option, you'd lose one of those files. But with -i enabled, mv will flag the potential overwrite and give you a chance to correct it.

    So, yeah, the -i option is a small detail, but it's a big deal when it comes to preventing accidental data loss. t's always better to be safe than sorry, especially when you're dealing with important files. Just like you normally shouldn’t skip putting a case on your phone, don't skip using the -i option with mv.

    It's a simple habit that can save you a lot of trouble down the road.

    How to Rename Directories in Linux Using the mv Command

    Now, here's another cool thing about the mv command: it's not just for files. You can use it to rename entire directories (folders) as well.

    Let's say you have a directory called "Old_Projects" and you want to give it a fresh new name, like "Archived_Projects." You'd simply use the mv command like this:

    mv Old_Projects Archived_Projects

    And that's it! The entire directory, along with all the files and subdirectories inside it, gets renamed.

    This is super handy when you're dealing with a bunch of related files. Instead of renaming each file individually, you can just rename the directory they're all in.

    Keep in mind, though, that the same rules about overwriting apply here. If you try to rename a directory to a name that already exists, mv will try to merge the two directories, which can get messy. So, always double-check your names and use that -i option if you're not 100 % sure.

    Some More Tips and Best Practices

    Alright, before we wrap things up, let me share some pro tips to level up your renaming game in Linux.

    The -v Option

    First up, the -v option (that's "v" for "verbose"). When you add this to your mv command, it basically gives you a play-by-play of what's happening. It'll show you exactly which files are being renamed. This can be super helpful when you're renaming a bunch of files and want to make sure everything's going smoothly.

    Backups

    Next, backups. I know, I know, backing things up is annoying, but trust me on this one. Before you start doing any major renaming operations, especially with wildcards or the rename command, make a backup of your files. It's better to be safe than sorry, especially when you're dealing with important data.

    Shell Scripts

    Finally, for those of you who really want to take things to the next level, consider using shell scripts for complex or repetitive renaming tasks. A shell script is basically a list of commands that you can save and run all at once.

    It's kinda like creating a macro on your keyboard to automate a series of actions. This can be super useful if you find yourself doing the same renaming operations over and over again.

    Wrap Up

    Hopefully, you're feeling a lot more confident navigating the command line and keeping your files organized.

    Remember the key takeaways here:

    • mv is your go-to command, and it's not just for moving files, but also for renaming them.

    • Wildcards are your best friends for batch renaming, and the rename command is there for those power user moves.

    • And don't forget the -i option to protect you from accidental mishaps.

    The real learning, however, comes from using those commands. So, open up your terminal, fire up a virtual machine, or grab your Linux laptop and start practicing! The more you experiment, the more comfortable you'll become with these commands.

    If you want to go even deeper, check out the man pages for mv and rename. Think of them like the official instruction manuals. You can access them right in the terminal by typing man mv or man rename.

    And if you have any questions or want to share your own pro tips, drop a comment down below! Let's help each other out.

    Oh, and don't forget to subscribe to my newsletter for more tech tips and tricks delivered straight to your inbox. I'll be covering everything from the latest smartphones to the coolest software, so you don't want to miss out.

    Thanks a bunch for reading, and I'll see you around.


    FAQ

    • Unfortunately, there's no single "undo" button for renaming files in Linux. It's kinda like accidentally sending a text – once it's gone, it's gone.

      But, if you remember the original filename, you can simply use the mv command again to rename it back.

      By the way, that's another reason why backups are so important! If you have a backup, you can always restore the original file.

    • Absolutely! But there's a little trick to it. When you're working with filenames that have spaces, you need to put them in quotes. For example:

      mv "My Document.txt" "My_Document.txt"

      Those quotes tell the terminal to treat the entire string as a single filename. It's like putting those long, multi-word Wi-Fi passwords in quotes when you're connecting to a network.

    • For that, you'll need to combine the mv command with the find command. find is like a search engine for your files, and it can locate files based on various criteria, including their name, size, and modification date.

      It's a bit more advanced, but there are plenty of online resources that can show you how to use find with mv for more complex renaming tasks. Think of it like using advanced search operators on Google to find exactly what you're looking for.

    • rename is a powerful tool, but it might not be pre-installed on all Linux distributions. If you try using it and get an error message, you might need to install it first.

      Just like sometimes you gotta download a specific app for a certain feature on your phone. The exact installation command will depend on your Linux distribution, but a quick Google search should point you in the right direction.

    • You bet! That's one of the cool things about Linux – you can manage your files from anywhere with an internet connection. Just SSH into your server and you can use mv, rename, and all the other commands just like you would on your local machine. It's similar to using a remote desktop app to access your computer from your phone.



    MOST POPULAR

    LATEST ARTICLES


    Tobias Holm

    Hey everyone, Tobias here, taking you on a unique journey through the tech landscape with a perspective you won't find just anywhere.

    Alongside my tech enthusiasm, I bring insights from my study of psychology and am on the brink of completing my law studies, providing a unique backdrop to how I view technology – not just as a collection of gadgets and software, but as an integral part of our daily lives and various professions.

    My versatility doesn't stop there – as a freelancer in writing, proofreading, and translating, I ensure each blog post is crafted with precision and clarity, making complex topics accessible to everyone.

    Plus, for those of you who love music as much as I do, check out my YouTube channel where I share my journey as a seasoned pianist.

    Thank you so much for reading – enjoy! :)

    https://www.tobiasholm.com
    Previous
    Previous

    How to Kill a Process in Linux

    Next
    Next

    How to Find a File in Linux