Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [116]
Музыка [19]
Общее [305]
Японский язык [12]
ZX Spectrum [71]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [134]
Ubuntu [103]
Manjaro Linux [40]
Python [3]
Магнитольное [44]
Commodore64 [15]
Игровые приставки [2]


 
Дневник (2020 » Февраль » 15 в 14:36)
Manjaro Linux Разные дистро - разные rename

mv или perl-rename?
Пользуясь perl-выражениями при переименовании убедитесь, что используете верный rename! Дело в том, что под одним именем скрываются две (говорят, что вообще три) разные по функционалу утилиты. В Ubuntu под именем rename стоит скрипт на perl renames multiple files  v1.10, сам же rename доступен под именем rename-ul. В Manjaro rename это просто сама утилита rename files v2.34 которая является частью пакета util-linux и не понимает ключей для перла.

Пока я был на убунте, у меня это работало:
find -type f -exec rename 'y/A-Z/a-z/' {} \;

Чтобы это же заработало в Manjaro, нужно сперва поставить пакет perl-rename, а затем обращаться уже к нему:
sudo pacman -S perl-rename
find -type f -exec perl-rename 'y/A-Z/a-z/' {} \;

Как мне рассказали, случилась такая неразбериха вот как:
perl-rename появился раньше (и изначально команда называлась именно rename), чем rename из util-linux. Когда появился rename в util-linux, чтобы избежать путаницы, перловскую переименовали в prename. Но, для совместимости с ранними релизами, где rename был именно prename (ну мало ли у кого с 90-х годов скрипты хранятся), в дебиане (и ряде других дистров) по умолчанию rename предоставляется именно prename и переключается на rename.ul через механизм alternatives. В арче (и его производной манджаре) используют ванильные пакеты, с alternatives не заморачиваются, rename из util-linux в rename.ul не переименовывают, поэтому там так. (q) gremlin_the_red

Примеры переименования с perl-rename:


Заменить *.djv на *.djvu
perl-rename 's/\.djv$/\.djvu/' *.djv
Заменить .jpeg и.JPG на .jpg
perl-rename 's/\.jpe?g$/.jpg/i' *
Заменить все foo на bar
perl-rename 's/foo/bar/g' ./*
Заменить _ на пробел
perl-rename  'y/_/ /' *
Добавить в начало имени prefix
perl-rename 's/^/prefix/' *

Примеры переименования с mv:

Заменить foo на bar
for i in ./*foo*;do mv -- "$i" "${i//foo/bar}";done
Заменить .JPG на .jpg
find . -name '*.JPG' -exec bash -c 'mv "$1" "${1/%.JPG/.jpg}"' -- {} \;
Добавить в начало имени prefix
for f in *; do mv {,prefix_}"$f"; done


Категория: Manjaro Linux | Просмотров: 475 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 1.

16.05.2021 13:37
1 lexus
0   Спам
touch ./file{1..10}.txt это создаст файлы от 1 до 10,вопрос ,кеп,как переименовать все скажем *.png в 1.png..10.png

В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous

Календарь
«  Февраль 2020  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
242526272829

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 9
Гостей: 9
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы