mmv - Linux
Overview
mmv
is a command-line utility for Unix-like operating systems designed for efficiently renaming, moving, or linking multiple files using wildcard patterns. It is particularly useful in situations where batch operations on filenames need to be performed following a pattern that specifies both the source and destination of the files.
Syntax
The basic syntax of the mmv
command is:
mmv [options] source_pattern destination_pattern
- source_pattern: Specifies the pattern that matches the files you want to manipulate.
- destination_pattern: Defines how the matched files should be renamed or moved.
Options/Flags
mmv
includes several options that alter its behavior:
-m
or--move
: Move files (default operation).-c
or--copy
: Copy files instead of moving.-l
or--link
: Make links instead of moving.-s
or--symlink
: Make symbolic links instead of hard links.-a
or--append
: Append to the destination file if it already exists.-d
or--delete
: Delete source files after copying/linking.-r
or--rename
: Just rename the files within their current directories.-v
or--verbose
: Output verbose information, showing files as they are processed.-n
or--noexec
: Show what would be done without actually doing it.
Examples
Here are some practical examples of how to use mmv
:
-
Rename multiple files:
mmv "*.txt" "#1.bak"
This command renames all
.txt
files in the current directory by changing their extension to.bak
. -
Move and rename files:
mmv "data/*.csv" "backup/#1.csv.bak"
Move all
.csv
files from thedata
directory to thebackup
directory, adding.bak
to their names. -
Use wildcards to change case:
mmv "???" "tmp/#l1l2l3"
Any three-character filename gets moved to the
tmp
directory with all letters changed to lowercase.
Common Issues
- Pattern matching issues: Ensure your wildcard patterns correctly match your intended files. Misaligned patterns can lead to no files being processed.
- Permission errors:
mmv
operations can fail if the executing user lacks sufficient permissions on the source or destination files/directories.
Integration
mmv
can be combined with shell scripts or other command-line tools to automate file processing tasks. For example:
find . -type f -name "*.log" -exec mmv "{}" "archive/#1-$(date +%Y%m%d).log" \;
This command finds all .log
files and moves them into an archive
directory with a date stamp added to their names.
Related Commands
mv
: Standard command for moving or renaming files.cp
: Copy files and directories.ln
: Create hard and soft links.
Further reading and official documentation can be found typically in the Unix and Linux man pages or online resources specific to your distribution or Unix variant.