Переименование группы файлов и каталогов в одну строку

#java #bash

#java #bash

Вопрос:

У меня есть проект Java со следующим соглашением об именовании {project-prefix}-{project type}, так что в итоге мы получаем:

  • файлы, подобные prefix-type.xml и т.д.
  • каталоги типа com/organization/prefix-type/.
  • файлы Java, такие как /com/organization/prefix-type/PrefixFactory.java

Я ищу bash one liner, который переименует часть {project-prefix} всех файлов и каталогов в java project (*.java, *.xml и т.д.) бонусные баллы, если он может обрабатывать java-файлы в формате camel и / или расширять поиск / замену на содержимое файла

Ответ №1:

Вы можете использовать -exec опцию find для выполнения команды, в которой вы можете использовать имя текущего соответствующего файла / каталога (расширенное с помощью «{}»), что-то вроде:

 find <directory> -iname <pattern> -exec mv "{}" $(modify {} whenever you want) ;
  

Комментарии:

1. Я немного озадачен тем, что происходит в разделе $ (modify {} всякий раз, когда вы хотите), можете ли вы уточнить и, возможно, привести пример?