How to use mmv command in Linux.

How To Use Mmv Command In Linux.

In the world of Linux and UNIX-based operating systems, managing files and directories is an essential part of the user experience. One critical aspect of managing these resources is renaming them to better organize or reflect changes in content. Manually renaming a large number of files or directories, however, can be a time-consuming task. This is where the mmv command comes in, a powerful tool that allows you to perform batch renames easily and efficiently.


What is the mmv Command?

mmv is a command-line utility in Linux and UNIX systems that enables you to perform batch renaming and moving of files and directories. The name “mmv” stands for “Multiple Move,” and it was created to make renaming a large number of files or directories easier and more efficient. This command can be used to perform batch renames, move files or directories from one location to another, or even perform other types of name transformations.

One of the major advantages of using mmv is its ability to handle complex matches using regular expressions and perform multiple renames in a single command, thereby saving time and effort. The mmv command comes pre-installed on many Linux distributions, making additional installation unnecessary.


Syntax of the mmv Command

The basic syntax of the mmv command is as follows:

mmv options_from options_to
  • options_from: Here, you specify a pattern for the files or directories you want to rename or move. You can use special characters to match multiple files or directories. For example, *.txt would match all files with the .txt extension.

  • options_to: Here, you specify the new name or pattern for the renamed or moved files or directories. You can use special characters to represent portions of the name, such as \1, \2, etc., to refer to groups of characters from the original name.


Usage Examples

  1. Renaming files with the .txt extension by adding “_new” at the end of their names:

    mmv "*.txt" "#1_new.txt"

    This will rename all files with the .txt extension in the current directory by replacing their extension with the same one and adding “_new” at the end of the names. For example, document.txt will become document_new.txt.

  2. Moving files with the .jpg extension to a directory named “Images”:

    mmv "*.jpg" "Images/#1.jpg"

    This will move all files with the .jpg extension from the current directory to a directory named “Images,” keeping the file names intact in the new location.

  3. Renaming files with names in the format “photo_x.jpg” to “image_x.jpg”:

    mmv "photo_*.jpg" "image_#1.jpg"

    This will rename all files that start with “photo_” and have the .jpg extension, replacing “photo_” with “image_” in their names.

  4. Renaming directories with the name “OldName” to “NewName”:

    mmv "OldName" "NewName"

    This will rename the directory “OldName” to “NewName.”

These are just a few simple examples of using the mmv command. You can create more complex patterns and perform custom renames and moves based on your needs.


Advanced Options

In addition to the basic syntax, the mmv command offers advanced options to provide you with more flexibility in performing batch renames. Here are some of the key options:

  • -r or –recursive: This option allows mmv to work recursively in directories and subdirectories, allowing you to perform batch renames throughout an entire directory tree.

  • -c or –copy: Instead of moving files or directories, this option makes a copy of them in the specified location.

  • -d or –dest-is-dir: This option indicates that the specified destination is a directory, meaning that the files or directories will be moved or copied to the specified directory.

  • -g or –glob: This option allows the interpretation of regular expressions or special characters in the way you expect. It’s useful when you want to use more complex patterns.

  • -v or –verbose: This option displays detailed information about each rename or move operation performed.

Regular Expressions with mmv

A powerful feature of mmv is its ability to use regular expressions for matching filenames and performing complex batch renaming operations. Regular expressions allow you to define patterns for filenames with great flexibility. For example, you can use regular expressions to match filenames with specific prefixes, suffixes, or patterns within the names.

Here’s an example of how you can use regular expressions with mmv to rename files:

Suppose you have a set of image files with names like “img001.jpg,” “img002.jpg,” and so on, and you want to rename them to “image001.jpg,” “image002.jpg,” and so forth. You can achieve this using mmv and regular expressions as follows:

mmv "img([0-9][0-9][0-9]).jpg" "image\1.jpg"

In this example, we use the regular expression “img([0-9][0-9][0-9]).jpg” to match filenames like “img001.jpg” where [0-9][0-9][0-9] represents a three-digit number. The ([0-9][0-9][0-9]) part captures the three-digit number and stores it in the \1 group. Then, in the options_to part, we use “image\1.jpg” to rename the files, where \1 is replaced with the captured three-digit number.

This is just one example of how regular expressions can be used with mmv to perform complex batch renaming tasks.



The mmv command is a versatile and powerful tool for automating file and directory renaming in Linux. Whether you need to rename a large number of files with simple patterns or perform complex batch renaming operations using regular expressions, mmv provides the flexibility and efficiency to get the job done. By understanding its syntax and advanced options, you can streamline your file management tasks and save valuable time in your Linux workflow.

Leave A Comment

What’s happening in your mind about this post !

Your email address will not be published. Required fields are marked *