1

У меня есть около 80 из этих файлов в моем каталоге.

-rw-rwxr--+ 1 vagrant vagrant  38122 Nov 13 12:19 CRMPicco RFC16 Women's 80.jpg
-rw-rwxr--+ 1 vagrant vagrant 101286 Nov 13 12:19 CRMPicco RFC16 Women's 8.jpg
-rw-rwxr--+ 1 vagrant vagrant  30110 Nov 13 12:19 CRMPicco RFC16 Women's 9.jpg

Я использую CentOS 7.0 и переименовал установлен.

[vagrant@crmpicco /var/www/crmpicco/web/php/upload/10111/165-190]# which rename
/usr/bin/rename

cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

Однако следующее не переименовывает файлы для меня. Я пробовал кучу разных способов, которые видели в SuperUser, но ни один из них, похоже, не работает.

[vagrant@crmpicco /var/www/crmpicco/web/php/upload/10111/165-190]# rename s/Women/W/ *.jpg

Я делаю что-то глупое?

1 ответ1

4

Это не так, как rename работает. Команда util-linux "rename" принимает только две статические строки (простой поиск и замена):

rename "Women" "W" *.jpg

Для Perl-подобного синтаксиса регулярных выражений вам понадобится rename.pl или perl-rename. Он не упакован для CentOS, но вы можете получить его непосредственно из CPAN в виде модуля File::Rename

Некоторые дистрибутивы, такие как Debian, меняют местами имена, так что rename происходит из Perl, а rename.ul из util-linux, я думаю, именно в этом и заключается путаница.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .