Пакетное переименование папок

У меня около 2000 папок с такими именами

dataul_-_ppfsefs

музыка_-_ppfsefs

весело [gghhses]

картинки_-_ppfsefs

резервная копия [gghhses]

tempfiles_-_ppfsefs

trash_it_-_ppfsefs

В конце имени есть две нежелательные части "_-_ppfsefs" и "[gghhses]", как их переименовать, чтобы они выглядели так

датаул

Музыка

весело

картинки

резервное копирование

временные файлы

трэш_ит


Изменить: я на Mac OSX (установлен brew, macports).


person kuruvi    schedule 31.01.2014    source источник


Ответы (1)


Следующие две команды должны сделать это:

for dir in * ; do mv "${dir}" "${dir/_-_ppfsefs/}" ; done

for dir in * ; do mv "${dir}" "${dir/ [gghhhses]/}" ; done
person Sunny Nanda    schedule 31.01.2014
comment
это работает, но когда папка не _-_ppfsefs, то показывает ошибку; имеют неверный аргумент. - person kuruvi; 31.01.2014
comment
нашел еще одну проблему, если в папке есть место, то она не работает, можете ли вы помочь мне исправить это. Благодарность - person kuruvi; 31.01.2014
comment
Unix, как и операционные системы (и я), не люблю пробелы :). Отредактировал ответ для работы с пробелами. Обратите внимание на двойные кавычки. - person Sunny Nanda; 31.01.2014