Shell Geek Zmień nazwę wielu plików na raz
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ć. (To jest wymyślny przykład). Możemy to łatwo zrobić za pomocą polecenia "for" w bashu, w połączeniu z odrobiną dobroci basha. Dziś nauczymy się, jak zastąpić tekst w zmiennej w pętli for.
Polecenie "for" działa w następujący sposób:
dla var in; do $ var; done
Możesz wymienić z dowolnym wzorem dopasowania pliku, takim jak * lub * .txt, i możesz go zastąpić za pomocą dowolnego polecenia systemu Linux. Polecenie będzie uruchamiane sekwencyjnie dla każdego pliku zgodnego 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 dla zarządzania kolekcją plików i zaoszczędziła mi godzin pracy, która w przeciwnym razie byłaby pracą ręczną..
I tak, zdaję sobie sprawę, że istnieje wiele narzędzi, które mogą dokonać zmiany nazwy wielu plików.