De nombreux sites (y compris divers SO articles) parlent de l'utilisation de "renommer" en utilisant des expressions Perl pour renommer des fichiers.
Ce serait parfait, mais apparemment ce n'est pas l'utilitaire de changement de nom que j'ai, et aucun de ces articles ne semble comprendre qu'il existe plusieurs versions de "renommer" et je n'arrive pas à trouver où obtenir une version qui accepte les expressions Perl.
Comment puis-je mettre la main sur l’utilitaire de renommage plus puissant mentionné ici , ici et ici ?
J'utilise Fedora 20. Ma commande de changement de nom actuelle provient du paquet util-linux
et, apparemment, j'ai besoin de la version Perl, qui est meilleure.
Je ne peux parler que pour Debian. Les deux programmes s'appellent
/usr/bin/rename.ul
du paquetage util-linux
(d'où le suffixe .ul)/usr/bin/prename
du package Perl
La commande réelle rename
fonctionne via le mécanisme /etc/alternatives
, dans lequel
/usr/bin/rename
est un lien symbolique vers /etc/alternatives/rename
/etc/alternatives/rename
est un lien symbolique vers /usr/bin/prename
Le même problème me dérange sur Cygwin, qui est un produit Red Hat, devrait donc ressembler davantage à Fedora. Je jetterai un coup d'oeil sur l'ordinateur portable de mon entreprise lundi. Et je me souviens que Perl-renommé y avait travaillé parfois. Probablement avant d'avoir installé util-linux
.
Si vous installez Perl-rename en /usr/local/bin
, sa priorité est rename
à partir de util-linux
. Même chose pour la page de manuel lorsqu’il est installé à /usr/local/share/man/man1/
.
Je viens de créer un paquetage distinct de renommage Perl sur Github: https://github.com/subogero/rename
Vous pouvez l’installer à l’aide de cpan , le référentiel Perl similaire à pip pour python.
Voici un tutorial sur l'utilisation de cpan.
Si vous essayez de le renommer, il ressemble à ceci
renommer --help
call: renomme à partir de fichiers ...
Pour installer le changement de nom Perl, vous pouvez procéder comme suit. Vous devrez peut-être installer quelques dépendances. Vous pouvez généralement appuyer simplement sur Entrée.
cpan
cpan 1 > install File :: Rename
CPAN: OK stockable, stockable (v2.20)
Va lire '/root/.cpan/Metadata'
La base de données a été générée le mercredi, 30 septembre 2015 08:17:02 GMT
Exécution de l’installation pour le module 'File :: Rename'
....
Installation en cours
Installation de /usr/local/share/man/man1/rename.1
Installation de /usr/local/share/Perl5/File/Rename.pm
Installation de /usr/local/share/man/man3/File::Rename.3pm
Installation de/usr/local/bin/rename
Écriture /usr/local/lib64/Perl5/auto/File/Rename/.packlist
RMBARKER/File-Rename-0.20.tar.gz
./Build install - OK
C’est ainsi que vous installeriez le changement de nom depuis cpan.
La prochaine étape consiste à le faire fonctionner sur votre système. Comme vous pourriez avoir plus d'un rename installé.
which rename
/usr/bin/rename
Quand vous voulez vraiment celui-ci.
/usr/local/bin/rename --help
Usage:
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E *perlexpr*]*|*perlexpr*
[ *files* ]
Options:
-v, -verbose
Verbose: print names of files successfully renamed.
-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.
-h, -help
Help: print SYNOPSIS and OPTIONS.
-m, -man
Manual: print manual page.
-V, -version
Version: show version number.
-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
';'.
Je viens de le mettre dans /usr/bin/
mais avec un nom légèrement différent pour m'assurer que je n'ai pas cassé de scripts/programmes existants, cela dépend de l'ancien.
ln -s /usr/local/bin/rename /usr/bin/rename.pl
Je devais faire ce qui suit:
# In bash
Sudo yum install Perl-CPAN
Sudo cpan
# In CPAN Shell
install Module::Build
install File::Rename
Pour les distributions Debian-family (.deb
), je recommande @ SzG's answer .
Pour les distributions RedHat-family (.rpm
) (par exemple Fedora), si votre temps est précieux (comme le mien), vous pouvez télécharger, compiler et installer à partir de la source via cpan
in one, terse commande:
# Install (replace `rename-1.9` below with another version if desired)
curl -L "http://search.cpan.org/CPAN/authors/id/P/PE/PEDERST/rename-1.9.tar.gz" | tar -xz && ( cd "rename-1.9"; Perl "Makefile.PL"; make && make install )
# Cleanup
rm -rf "rename-1.9"
Note:
INSTALL_BASE
peut être configuré pour modifier le répertoire d'installation de base.par exemple
Perl "Makefile.PL" INSTALL_BASE=/usr/local