If-Koubou

Shell Geek: Zmień nazwę wielu plików na raz

Shell Geek: Zmień nazwę wielu plików na raz (Jak)

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.