logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

file-rename - renames multiple files

Author

       Larry Wall

Bugs

       The original "rename" did not check for the existence of target filenames, so had to be used with care.

perl v5.36.0                                       2024-01-01                                         RENAME(1p)

Description

       "file-rename" renames the filenames supplied according to the rule specified as the first argument.  The
       perlexpr argument is a Perl expression which is expected to modify the $_ string in Perl 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.

   Examples(LarryWall,1992)
       For example, to rename all files matching "*.bak" to strip the extension, you might say

               file-rename -- 's/\.bak$//' *.bak

       To translate uppercase names to lower, you'd use

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

       Examples rewritten to avoid globs which could inject options.

   Moreexamples(2020)
       You can also use rename to move files between directories, possibly at the same time as making other
       changes (but see --filename)

               file-rename 'y/A-Z/a-z/;s/^/my_new_dir\//' ./*.*

       You can also write the statements separately (see -e/-E)

               file-rename -E 'y/A-Z/a-z/' -E 's/^/my_new_dir\//' -- *.*

       You can use the predefined variables "$a, $b" in the code; for instance to create sequences of numbers

           rename -e '$a++;s/\w+/file_$a/' -- *.*

Diagnostics

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

Environment

       No environment variables are used.

Name

       file-rename - renames multiple files

Options

-v, --verbose
               Verbose: print names of files successfully renamed.

       -0, --null
               Use \0 as record separator when reading from STDIN.

       -n, --nono
               No action: print names of files to be renamed, but don't rename.

       -f, --force
               Over write: allow existing files to be over-written.

       --path, --fullpath
               Rename full path: including any directory component.  DEFAULT

       -d, --filename, --nopath, --nofullpath
               Do not rename directory: only rename filename component of path.

       -h, --help
               Help: print SYNOPSIS and OPTIONS.

       -m, --man
               Manual: print manual page.

       -V, --version
               Version: show version number.

       -u, --unicode [encoding]
               Treat filenames as perl (unicode) strings when running the user-supplied code.

               Decode/encode filenames using encoding, if present.

               encoding  is  optional:  if omitted, the next argument should be an option starting with '-', for
               instance -e.

       -e      Expression: code to act on files name.

               May be repeated to build up code (like "perl -e").  If no -e, the first argument is used as code.

       -E      Statement: code to act on files name, as -e but terminated by ';'.

See Also

mv(1), perl(1)

Synopsis

file-rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -u [enc]] [ -e|-Eperlexpr]*|perlexpr
       [ files ]

See Also