.\" Written by Andries E. Brouwer (aeb@cwi.nl)
.\" Placed in the public domain
.\"
.TH RENAME 1 "June 2011" "util-linux" "User Commands"
.SH NAME
rename \- rename files
.SH SYNOPSIS
.B rename
[options]
.IR "expression replacement file" ...
.SH DESCRIPTION
.B rename
will rename the specified files by replacing the first occurrence of
.I expression
in their name by
.IR replacement .
.SH OPTIONS
.TP
.BR \-s , " \-\-symlink"
Do not rename a symlink but its target.
.TP
.BR \-v , " \-\-verbose"
Show which files were renamed, if any.
.TP
.BR \-n , " \-\-no\-act"
Do not make any changes; add
.B \-\-verbose
to see what would be made.
.TP
.BR \-o , " \-\-no\-overwrite"
Do not overwrite existing files.  When
.B \-\-symlink
is active, do not overwrite symlinks pointing to existing targets.
.TP
.BR \-i , " \-\-interactive"
Ask before overwriting existing files.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH EXAMPLES
Given the files
.IR foo1 ", ..., " foo9 ", " foo10 ", ..., " foo278 ,
the commands
.RS
.PP
.nf
rename foo foo00 foo?
rename foo foo0 foo??
.fi
.PP
.RE
will turn them into
.IR foo001 ", ..., " foo009 ", " foo010 ", ..., " foo278 .
And
.RS
.PP
.nf
rename .htm .html *.htm
.fi
.PP
.RE
will fix the extension of your html files.
Provide an empty string for shortening:
.RS
.PP
.nf
rename '_with_long_name' '' file_with_long_name.*
.fi
.PP
.RE
will remove the substring in the filenames.
.SH WARNING
The renaming has no safeguards by default or without any one of the options
.B \-\-no-overwrite\fR,
.B \-\-interactive
or
.B \-\-no\-act\fR.
If the user has
permission to rewrite file names, the command will perform the action without
any questions.  For example, the result can be quite drastic when the command
is run as root in the /lib directory.  Always make a backup before running the
command, unless you truly know what you are doing.
.SH INTERACTIVE MODE
As most standard utilities rename can be used with a terminal device (tty in
short) in canonical mode, where the line is buffered by the tty and you press
ENTER to validate the user input.  If you put your tty in cbreak mode however,
rename requires only a single key press to answer the prompt.  To set cbreak
mode, run for example:
.RS
.PP
.nf
sh -c 'stty -icanon min 1; "$0" "$@"; stty icanon' rename -i from to files
.fi
.PP
.RE
.SH "EXIT STATUS"
.RS
.PD 0
.TP
.B 0
all requested rename operations were successful
.TP
.B 1
all rename operations failed
.TP
.B 2
some rename operations failed
.TP
.B 4
nothing was renamed
.TP
.B 64
unanticipated error occurred
.PD
.RE
.SH "SEE ALSO"
.BR mv (1)
.SH AVAILABILITY
The rename command is part of the util-linux package and is available from
https://www.kernel.org/pub/linux/utils/util-linux/.
