Удалить текст из нескольких имен папок в fish или bash

Удалить текст из нескольких имен папок в fish или bash

есть папка с подпапками. Я хочу удалить [ trash.com ] из каждого имени папки. Я хотел бы удалить пробел после ]

В настоящее время

$ ls 
 
[ garbage.com ] happy  
[ garbage.com ] Sad   
[ garbage.com ] confused  
dog  
cat  
rat  
.....

После сценария

$ ls  

happy  
Sad  
confused  
dog  
cat  
rat  

Я попробовал команду find, но [] и пробел сбивают меня с толку.

решение1

Попробуйте следующее:

rename "s/\[\ garbage\.com\ \]\ //" -n *

Опция -n выведет только запланированные изменения. Удалите -n, ​​чтобы действительно переименовать каталоги. Обратите внимание, что это переименует не только каталоги, но и файлы.

Чтобы переименовать только каталоги, используйте следующее:

find . -type d -exec rename -n "s/\[\ garbage\.com\ \]\ //" {} ";"

Связанный контент