есть папки в папке:
asd.test.te
dfg.test.te
ghj.test.te
нужно переименовать их в:
asd.test.com
dfg.test.com
ghj.test.com
их много, поэтому нужно какое то решение в одну строку.
я пробовал mv *test.te *.test.com не работает.
Переименовать множество папок..
Модераторы: /dev/random, Модераторы разделов
-
- Администратор
- Сообщения: 5405
- ОС: Gentoo
Re: Переименовать множество папок..
man rename
или
man mmv
или
man mmv
-
- Сообщения: 479
- Статус: ZONGO!
- ОС: openSUSE 12.1 x64
Re: Переименовать множество папок..
Код: Выделить всё
rename te com *
-
- Администратор
- Сообщения: 5405
- ОС: Gentoo
Re: Переименовать множество папок..
Вот с этим аккуратнее. Есть две утилиты с одинаковым именем - "rename", одинаковым назначением, но совершенно разным синтаксисом. И трудно предсказать, какая из них будет у спрашивающего. Поэтому если даёте пример, то лучше с mmv, а если выбрали rename, то тут уж только отсылайте в маны, поскольку ваш пример может сработать, а может и нет.
Спасибо сказали:
-
- Сообщения: 355
- ОС: Gentoo
Re: Переименовать множество папок..
Если у вас zsh, то это почти правильно:
(created by format.vim)
autoload zmv # Лучше поместить это в zshrc
zmv -W '*.test.te' '*.test.com'
-
- Сообщения: 512
- ОС: debian stable
Re: Переименовать множество папок..
1.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ru_RU.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Bareword "te" not allowed while "strict subs" in use at (eval 1) line 1.
2.у меня нет команды zmv как мне её установить?
os debian
perl: warning: Setting locale failed.rename te com *
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ru_RU.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Bareword "te" not allowed while "strict subs" in use at (eval 1) line 1.
2.у меня нет команды zmv как мне её установить?
os debian
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Переименовать множество папок..
fergios
установите и настройте, в конце концов, locales.
$ rename 's/\.te$/.com/' *
установите и настройте, в конце концов, locales.
скорее всего, у вас используется перловский rename:
$ rename 's/\.te$/.com/' *
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 355
- ОС: Gentoo
Re: Переименовать множество папок..
fergios писал(а): ↑09.05.2011 05:421.perl: warning: Setting locale failed.rename te com *
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ru_RU.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Bareword "te" not allowed while "strict subs" in use at (eval 1) line 1.
2.у меня нет команды zmv как мне её установить?
os debian
zmv — это shell-функция, написанная на zsh, распространяется вместе с этой оболочкой. Поддерживает самые разные варианты переименования, примеры и документацию см в /usr/share/zsh/$ZSH_VERSION/functions/Misc/zmv. Использовать из bash можно только с помощью конструкции zsh -c "autoload zmv && zmv ...". Лучше перед zmv поставить noglob, чтобы не требовалось экранировать звёздочки и проч.
Если надо посмотреть, что функция собирается сделать, то нужно после zmv поставить флаг -n, команды zmv -n ... | zsh - и zmv ... эквивалентны.
-
- Сообщения: 203
- ОС: Убунту
Re: Переименовать множество папок..
Код: Выделить всё
$ ruby -e "Dir.entries('./').each { |oldName| newName = oldName.gsub(/test.te/,'test.com'); File.rename oldName,newName }"
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Переименовать множество папок..
вы ещё на csh не сделали...
решение-то примитивное:
решение-то примитивное:
Shell
$ for n in *.te; do echo mv $n ${n%.te}.com; done
mv asd.test.te asd.test.com
mv dfg.test.te dfg.test.com
mv gddfghj.test.te gddfghj.test.com
mv ghj.test.te ghj.test.com