To powinno być względnie banalne, ale próbowałem przez jakiś czas bez powodzenia. Mam katalog, z wieloma katalogami, każdy ma własną strukturę i pliki.Znajdź pliki, zmień nazwę w miejscu bx unix
Szukam znaleźć wszystkie pliki .java w dowolnym katalogu w katalogu roboczym i zmienić ich nazwę na konkretną nazwę. Na przykład, chciałbym nazwać wszystkie pliki java "test.java".
Jeśli struktura katalogu jest:
./files/abc/src/abc.java
./files/eee/src/foo.java
./files/roo/src/jam.java
Chcę po prostu zmienić nazwę na:
./files/abc/src/test.java
./files/eee/src/test.java
./files/roo/src/test.java
Oczywiście, część z moim problemem jest to, że ścieżki mogą mieć miejsca w I don. nie musisz się martwić o zmianę nazw klas ani nic w pliku, tylko nazwa pliku na miejscu.
Jeśli w katalogu znajduje się więcej niż jeden plik .java, nie mam nic przeciwko temu, że jest on nadpisywany lub wyświetlany jest monit o wybór, co należy zrobić (jest w porządku, jest mało prawdopodobne, że jest więcej niż 1 w każdym katalogu
Co próbowałem:.
Patrząc mv i znaleźć, ale kiedy rura je razem wydaje mi się, że robi to źle, chcę się upewnić, aby utrzymać je w ich bieżącej lokalizacji i zmień nazwę i nie ruszaj się.
Dziękuję, bardzo dziękuję za pomoc
Jak powinienem odczytać bit '' $ {1%/*} "/ test.java'? – dumbledad
Zmienna '$ 1','% 'usuwa najkrótszy pasujący sufiks '/ *' - usuwa nazwę pliku z '$ 1' jak' dirname "$ 1". '/ test.java' jest dołączany do nazwy tego katalogu. –