rename

RENAME(1)              User Contributed Perl Documentation             RENAME(1)



NAME
       rename - renames multiple files

SYNOPSIS
       rename [-bfilnv] [-B prefix] [-S suffix] [-V method] [-Y prefix] [-z
       suffix] [--backup] [--basename-prefix=prefix] [--dry-run] [--force]
       [--help] [--no-stdin] [--interactive] [--just-print] [--link-only]
       [--prefix=prefix] [--suffix=suffix] [--verbose]
       [--version-control=method] [--version] perlexpr [files]...

DESCRIPTION
       rename renames the filenames supplied according to the rule specified as
       the first argument.  The argument is a Perl expression which is expected
       to modify the $_ string for at least some of the filenames specified.  If
       a given filename is not modified by the expression, it will not be
       renamed.  If no filenames are given on the command line, filenames will
       be read via standard input.

       If a destination file is unwritable, the standard input is a tty, and the
       -f or --force option is not given, mv prompts the user for whether to
       overwrite the file.  If the response does not begin with `y' or `Y', the
       file is skipped.

OPTIONS
       -b, --backup
           Make backup files.  That is, when about to overwrite a file, rename
           the original instead of removing it.  See the -V or --version-control
           option fo details about how backup file names are determined.

       -B prefix, --prefix=prefix
           Use the simple method to determine backup file names (see the -V
           method or --version-control=method option), and prepend prefix to a
           file name when generating its backup file name.

       -f, --force
           Remove existing destination files and never prompt the user.

       -h, --help
           Print a summary of options and exit.

       -no-stdin
           Disable reading of filenames from STDIN. Us it when your shell has
           nullglob enabled to make sure rename doesn't wait for input.

       -i, --interactive
           Prompt whether to overwrite each destination file that already
           exists.  If the response does not begin with `y' or `Y', the file is
           skipped.

       -l, --link-only
           Link files to the new names instead of renaming them. This will keep
           the original files.

       -n, --just-print, --dry-run
           Do everything but the actual renaming, insted just print the name of
           each file that would be renamed. When used together with --verbose,
           also print names of backups (which may or may not be correct
           depending on previous renaming).

       -v, --verbose
           Print the name of each file before renaming it.

       -V method, --version-control=method
           Use method to determine backup file names.  The method can also be
           given by the RENAME_VERSION_CONTROL (or if that's not set, the
           VERSION_CONTROL) environment variable, which is overridden by this
           option.  This option does not affect wheter backup files are made; it
           affects only the name of any backup files that are made.

           The value of method is like the GNU Emacs `version-control' variable;
           rename also recognize synonyms that are more descriptive.  The valid
           values are (unique abbreviations are accepted):

           existing or nil
               Make numbered backups of files that already have them, otherwise
               simple backups. This is the default.

           numbered or t
               Make numbered backups.  The numbered backup file name for F is
               F.~N~ where N is the version number.

           simple or never
               Make simple backups.  The -B or --prefix, -Y or
               --basename-prefix, and -z or --suffix options specify the simple
               backup file name.  If none of these options are given, then a
               simple backup suffix is used, either the value of
               SIMPLE_BACKUP_SUFFIX environment variable if set, or ~ otherwise.

       --version
           Print version information on standard output then exit successfully.

       -Y prefix, --basename-prefix=prefix
           Use the simple method to determine backup file names (see the -V
           method or --version-control=method option), and prefix prefix to the
           basename of a file name when generating its backup file name. For
           example, with -Y .del/ the simple backup file name for a/b/foo is
           a/b/.del/foo.

       -z suffix, -S suffix, --suffix=suffix
           Use the simple method to determine backup file names (see the -V
           method or --version-control=method option), and append suffix to a
           file name when generating its backup file name.

EXAMPLES
       To rename all files matching *.bak to strip the extension, you might say

           rename 's/\e.bak$//' *.bak

       To translate uppercase names to lower, you'd use

           rename 'y/A-Z/a-z/' *

       More examples:

           rename 's/\.flip$/.flop/'       # rename *.flip to *.flop
           rename s/flip/flop/             # rename *flip* to *flop*
           rename 's/^s\.(.*)/$1.X/'       # switch sccs filenames around
           rename 's/$/.orig/ */*.[ch]'    # add .orig to source files in */
           rename 'y/A-Z/a-z/'             # lowercase all filenames in .
           rename 'y/A-Z/a-z/ if -B'       # same, but just binaries!
       or even
           rename chop *~                  # restore all ~ backup files

ENVIRONMENT
       Two environment variables are used, SIMPLE_BACKUP_SUFFIX and
       VERSION_CONTROL.  See "OPTIONS".

SEE ALSO
       mv(1) and perl(1)

DIAGNOSTICS
       If you give an invalid Perl expression you'll get a syntax error.

AUTHOR
       Peder Stray <pederst@cpan.org>, original script from Larry Wall.



perl v5.32.0                       2020-06-21                          RENAME(1)