Получите утилиту Perl rename вместо встроенного переименования
многие сайты (включая различные статьи SO) говорят об использовании "переименования" с помощью выражений Perl для переименования файлов.
Это было бы идеально, но, по-видимому, это не утилита переименования, и ни одна из этих статей, похоже, не понимает, что есть несколько версий "переименовать", и я не могу найти, где получить версию, которая принимает выражения Perl.
Как я могу получить более мощную утилиту переименования, упомянутую здесь, здесь и здесь?
Я запускаю Fedora 20. Моя текущая команда переименования из util-linux
пакет и, по-видимому, мне нужна версия Perl, которая лучше.
4 ответов
я могу говорить только за Debian. Эти две программы называются
-
/usr/bin/rename.ul
сutil-linux
пакета (отсюда .суффикс-уль -) -
/usr/bin/prename
Сperl
пакета
фактический rename
команда работает через /etc/alternatives
механизм, согласно которому
-
/usr/bin/rename
- это симлинк на/etc/alternatives/rename
-
/etc/alternatives/rename
является символической ссылкой на/usr/bin/prename
та же проблема беспокоила меня Cygwin, который является продуктом Red Hat, поэтому должен быть более похож на Fedora. Я посмотрю на своем ноутбуке в понедельник. И я помню, что Perl-rename иногда работал там. Вероятно, до того, как я установил util-linux
.
если вы установите Perl-переименовать в /usr/local/bin
он будет иметь приоритет над rename
С util-linux
. То же самое касается manpage при установке в /usr/local/share/man/man1/
.
я только что создал отдельный пакет Perl-rename на Github: https://github.com/subogero/rename
вы можете установить его с помощью на CPAN, который является репозиторием perl, подобным pip для python.
здесь учебник при использовании cpan.
если вы попытаетесь запустить переименовать его, это выглядит так
переименовать --help
вызов: переименовать из в файлы...
для установки переименования perl вы можете сделать следующее. Возможно, Вам потребуется установить несколько зависимостей, вы можете просто нажать enter
на CPAN
на CPAN1> установить файл: переименовать
CPAN: Storable loaded ok (v2.20)
Переходим к чтению ' / root/.cpan / Metadata'
База данных была создана на СР, 30 сен 2015 08:17: 02 GMT
Запуск установки для модуля "File:: Rename"
....
Запуск Build install
Установка /usr / local/share/man/man1 / переименование.1
Установка /usr / local/share/perl5/файл / переименование.pm
Установка / usr / local/share/man/man3 / File::переименовать.3 часа дня
Установка /usr/local/bin / rename
Запись / usr / local/lib64/perl5/авто/файл/переименование/.packlist
Rmbarker / File-Rename-0.20.смола.gz
./ Build install -- OK
именно так вы бы установили переименование из cpan.
Затем, чтобы заставить его работать на вашей системе. Поскольку у вас может быть установлено несколько переименований.
which rename
/usr/bin/rename
когда вы действительно хотите этого.
/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
';'.
Я просто положил его в /usr/bin/
но с небольшим другим именем, чтобы убедиться, что я не сломал существующие скрипты / программы, зависят от старого.
ln -s /usr/local/bin/rename /usr/bin/rename.pl
Я должен был сделать следующее:
# In bash
sudo yum install perl-CPAN
sudo cpan
# In CPAN shell
install Module::Build
install File::Rename
для Debian-family (.deb
) дистрибутивов, рекомендую @szg в это ответ.
для RedHat-семьи (.rpm
) дистрибутивы (например, Fedora), если ваше время драгоценные (как и мой), вы можете скачать, скомпилировать и установить из источника через cpan
в одном немногословные:
# 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"
Примечание:
INSTALL_BASE
можно установить для изменения базового каталога установки.например
perl "Makefile.PL" INSTALL_BASE=/usr/local