1

The other day something started going wrong with the perl rename terminal command that was pre-installed on my system; which is Ubuntu 22.04.5 LTS. When I try to use any version of the rename command I get the following message:

Duplicate specification "V|version" for option "v" Duplicate specification "E=s" for option "e" 

By this I mean that any attempts at using rename, including simply rename -h bring up this error. rename -h will still print out the help information, which is as follows for my version of rename (2.02)

Duplicate specification "V|version" for option "v" Duplicate specification "E=s" for option "e" Usage: rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ] [ -u [enc]] [ -e|-E perlexpr]*|perlexpr [ 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 ';'. 

If I attempt any actuall usage of the program, even as simple as rename -n -s/\.txt//' * the program stalls out and freezes after printing the error message.

As far as I have been able to find digging around for help and answers, the issue is apparently due to Getopt::Long somehow ignoring case, despite the fact that File::Rename::Options is meant to specifically turn on no_ignore_case when it calls Getopt::Long.

I have tried updating, upgrading, and cleaning apt and apt-get, purging and then reinstalling rename, updating/upgrading Perl, along with basic computer updates and restarting. If anyone knows what is going on to cause this, or has a solution, I'd be extremely grateful.

12
  • What OS or Linux Distribution are you using? What version of rename did you install? What is a command line that triggers this error? Commented Jul 2 at 22:00
  • 1
    You seem to be falling into the "applying solution before diagnosing" fallacy. Edit your Question and show us the rename command, and it's results. This looks like Perl's rename command, but "built in" to what? The parameters to Perl's rename are different. Try rename --help Commented Jul 2 at 22:16
  • 1
    SE is a Q&A site, not a conversation site. Please edit the question, rather than replying in comments. If you edit your Question, you can format for readability, and potential future helpers won't have to wade through dozens of comments just to find out the current state of your search for an Answer. Commented Jul 3 at 16:12
  • 1
    So you seem to be using a rename from /usr/local, not the system's one which should be in /usr/bin and packages in /usr/share. Commented Jul 3 at 16:42
  • 1
    rename -n 's/\.txt//' stalling is to be expected. If not given any file paths as arguments, they are being read from stdin. Commented Jul 3 at 17:07

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.