Давным-давно я нашел небольшой фрагмент кода в конце книги по программированию на Perl 4 O'Reilly, который позволяет переименовывать файлы с помощью регулярных выражений. Я использовал это с тех пор. Возможность использовать регулярные выражения Perl, особенно tr и s, сделала переименование файлов таким простым. Вырежьте это, вставьте его в файл с именем rename на вашем пути, сделайте его исполняемым "chmod ugo + x rename" и сохраните его как часть вашего обычного арсенала инструментов. Проверьте, где находится ваш perl, с помощью «which perl» и отрегулируйте первую строку соответствующим образом. Это предполагает, что вы находитесь в системе Unix с доступом к Perl.
#!/usr/bin/perl
# Usage: rename perlexpr [files]
($op = shift) || die "Usage: rename perlexpr [filenames]\n";
if (!@ARGV)
{
@ARGV = <STDIN>;
chop (@ARGV);
}
for (@ARGV)
{
$was = $_;
eval $op;
die $@ if $@;
rename ($was,$_) unless $was eq $_;
}
Итак, для вашего примера, вы можете сделать
rename "s/_old//" *_old.php
К сожалению. Тег для этого вопроса - ftp. Если ваш доступ осуществляется через FTP, это не сработает, потому что у вас не будет доступа к оболочке.