Jak używać bash do zmiany rozszerzenia pliku wielu plików w folderze

Jak używać bash do zmiany rozszerzenia pliku wielu plików w folderze
W tym samouczku omówi szybki sposób użycia BASH na zmianę nazw z określonego rozszerzenia na inne. Będziemy używać pętli bash, znaleźć, zmieniać nazwę i polecenie MV dla tego.

Metoda 1: pętla bash

Najczęstszym sposobem zmiany rozszerzeń plików w katalogu jest użycie bashu do pętli. Możemy skłonić użytkownika do wprowadzenia katalogu docelowego, starego rozszerzenia i nowego rozszerzenia na zmianę nazwy za pomocą skryptu bash.

Krok 1: Zbierz skrypt
Zacznijmy montować skrypt. Pierwszą częścią, której potrzebujemy, jest uzyskanie katalogu docelowego. W tym celu możemy basować czytaj jako:

#!/bin/bash
echo „Wprowadź katalog docelowy”
Przeczytaj Target_dir
CD $ Target_dir
echo „Wprowadź rozszerzenie pliku, aby wyszukać bez kropki”
Przeczytaj Old_Ext
echo „Wprowadź nowe rozszerzenie pliku, aby zmienić nazwę bez kropki”
Przeczytaj nowy_ext
echo "$ tarme_dir, $ old_ext, $ new_ext"

Powyższy skrypt poprosi użytkownika o przetworzenie katalogu, a następnie CD do katalogu SET.

Następnie otrzymujemy stare rozszerzenie bez kropki (.); Wreszcie, otrzymujemy nowe rozszerzenie, aby zmienić nazwę plików.

Teraz przetwarzajmy pliki. Dla tego; Możemy zaimplementować prostą regułę, która rekurencyjnie wyszukuje pliki jako:

dla pliku w *.$ old_ext
Do
mv -v "$ plik" "$ plik%.$ old_ext.$ new_ext "
zrobione;

Powyższa pętla będzie przeszukiwać karty podawane wszystkie pliki ze starym rozszerzeniem i zmieni je na nowe rozszerzenie.

Aby uzyskać Vairbose, używamy polecenia MV z -v. Możesz stłumić to wyjście, zastępując flagę -V -

Krok 2: Uruchom skrypt
Teraz umieśćmy skrypt do testu. Ostateczny skrypt jest poniżej:

#!/bin/bash
echo „Wprowadź katalog docelowy”
Przeczytaj Target_dir
CD $ Target_dir
echo „Wprowadź rozszerzenie pliku, aby wyszukać bez kropki”
Przeczytaj Old_Ext
echo „Wprowadź nowe rozszerzenie pliku, aby zmienić nazwę bez kropki”
Przeczytaj nowy_ext
echo "$ tarme_dir, $ old_ext, $ new_ext"
dla pliku w *.$ old_ext
Do
mv -v "$ plik" "$ plik%.$ old_ext.$ new_ext "
zrobione;

W tym teście użyjemy katalogu /var /log i zmienimy nazwę wszystkich .pliki dziennika do .Bak. Oto zawartość katalogu przed uruchomieniem skryptu.

$ ls l/var/log/| Grep .dziennik

Teraz uruchommy skrypt.

$ chmod +x rozszerzenia.cii
$ sudo ./rozszerzenia

Zrzut ekranu powyżej pokazuje skrypt przetwarzający pliki i zmieniając nazwę wszystkich plików za pomocą .Zaloguj się do .Bak.

Ponieważ jest to skrypt interaktywny, przydaje się, gdy nie chcesz twardego kodu rozszerzenia.

Poniżej znajduje się zawartość katalogu /var /log po skrypcie.

$ ls -l/var/log/| Grep .Bak

Aby przywrócić zmiany, przełącz stare rozszerzenie na .Bak i nowe rozszerzenie jako .dziennik

Metoda 2: Zmień nazwę polecenia

Jeśli nie masz ochoty pracować ze skryptem, możesz użyć narzędzia Zmień nazwę do rekurencyjnej zmiany rozszerzeń plików.

Aby zainstalować nazwę Zmień, użyj polecenia:

$ sudo apt -get instalacja Zmień nazwę -y

Po zainstalowaniu możesz użyć polecenia zmiany nazwy jako:

# Zmień do katalogu docelowego
CD/var/log/
# Zmień rozszerzenie
Sudo Zmień nazwę s/\.dziennik/.Bak/' *.dziennik

Aby przywrócić zmiany, zmień .Bak to .log i odwrotnie.

$ sudo zmieniając nazwę s/\.Bak/.dziennik/' *.Bak

Metoda 3: Polecenie MMV

Możesz także użyć polecenia MMV, które pozwala przenosić wiele plików jednocześnie. Zainstaluj MMV z poleceniem:

$ sudo apt-get instaluj mmv

Aby zmienić nazwę plików za pomocą polecenia MMV:

$ cd/var/log/
MMV "*.CSV „”#1.xls "

Nr 1 przenosi pliki do bieżącego katalogu. Po uruchomieniu polecenia zmieni nazwę .pliki dziennika do określonego rozszerzenia.

Podsumowując

W tym artykule omówiono różne metody, które można rekurencyjnie zmienić rozszerzenia plików w określonym katalogu. Warto jednak zauważyć, że możesz wdrożyć strategie inne niż te omówione w tym przewodniku.

Dziękujemy za przeczytanie i pamiętaj o podzieleniu się!