Załóżmy, że masz katalog zawierający setki plików o błędnych nazwach plików i chcesz zastąpić każdą nazwę pliku zawierającą test z szturchać. (jest to wymyślny przykład). Możemy to łatwo zrobić za pomocą polecenia "for" w bashu, w połączeniu z odrobiną dobroci basha. Dzisiaj dowiemy się, jak zastąpić tekst w zmiennej w pętli for.
Polecenie "for" działa w ten sposób:
dla var in; do $ var; done
Możesz wymienić z dowolnym wzorem dopasowania pliku, takim jak * lub * .txt, i można go zastąpić przy użyciu dowolnego polecenia systemu Linux. Polecenie zostanie uruchomione sekwencyjnie na każdym pliku zgodnym ze wzorem dopasowania pliku.
W tym miejscu obsługa zmiennych bash czyni to jeszcze bardziej interesującym. Zamiast po prostu zrobić coś takiego jak "mv $ var", możemy zastąpić tekst w nazwie pliku przy użyciu następującej składni:
$ var / originaltext / replacetext
Tak więc, jeśli uruchomimy to polecenie w naszym katalogu:
dla f in *; wykonaj mv $ f $ f / test / prod; done
Dla każdego pliku dopasowanego przez * bash wykona polecenie podobne do tego:
mv test.config prod.config
Odkryłem, że znajomość powłoki jest nieoceniona podczas administrowania serwerami lub po prostu do zarządzania kolekcją plików i zaoszczędziła mi godzin pracy, która w przeciwnym razie byłaby ręczna.
I tak, zdaję sobie sprawę, że istnieje wiele narzędzi, które mogą dokonać zmiany nazwy wielu plików.