Это должно быть относительно тривиально, но я пробовал какое-то время без большой удачи. У меня есть каталог со многими каталогами, каждый со своей структурой и файлами.Найти файлы, переименовать на место unix bash
Я ищу, чтобы найти все файлы .java в любом каталоге под рабочим каталогом и переименовать их в определенное имя. Например, я хотел бы назвать все java-файлы «test.java».
Если структура каталогов:
./files/abc/src/abc.java
./files/eee/src/foo.java
./files/roo/src/jam.java
Я хочу просто переименовать:
./files/abc/src/test.java
./files/eee/src/test.java
./files/roo/src/test.java
Конечно, часть моей проблемы заключается в том, что пути могут иметь пробелы в Я надеваю. 't нужно беспокоиться о переименовании классов или что-либо внутри файла, просто имя файла на месте.
Если в каталоге имеется более 1 .java-файла, я не против, если он будет перезаписан или вам будет предложено выбрать, что делать (либо это нормально, маловероятно, что их больше 1 в каждом каталоге
то, что я пытался:.
Глядя в мв и найти, но когда я труба их вместе, я, кажется, делают это неправильно, я хочу, чтобы убедиться, чтобы сохранить их в своем текущем местоположении и переименовать и не перемещать.
Спасибо, я очень признателен за любую помощь.
Как читать бит '' $ {1%/*} "/ test.java'? – dumbledad
Переменная '$ 1','% 'удаляет кратчайший суффикс соответствия'/* '- он удаляет имя файла из' $ 1', например 'dirname '$ 1" '. '/ test.java' добавляется к этому имени каталога. –