Android

Jak zmieniać nazwy plików i katalogów w systemie Linux

Podstawy pracy w terminalu w systemie Linux

Podstawy pracy w terminalu w systemie Linux

Spisu treści:

Anonim

Zmiana nazw plików i katalogów jest jednym z najbardziej podstawowych zadań, które często trzeba wykonywać w systemie Linux.

Zmiana nazwy pojedynczego pliku jest łatwa, ale zmiana nazwy wielu plików jednocześnie może stanowić wyzwanie, szczególnie dla użytkowników, którzy dopiero zaczynają pracę z Linuksem. Możesz zmieniać nazwy plików za pomocą menedżera plików GUI lub terminala wiersza poleceń.

W tym samouczku pokażemy, jak używać komend mv i rename , aby zmieniać nazwy plików i katalogów.

Zmiana nazw plików za pomocą polecenia mv

Polecenie mv (skrót od move) służy do zmiany nazwy lub przenoszenia plików z jednej lokalizacji do drugiej. Składnia komendy mv jest następująca:

mv source destination

source może być jeden lub więcej plików lub katalogów, a destination może być pojedynczy plik lub katalog.

  • Jeśli podasz wiele plików jako source , destination musi być katalog. W takim przypadku pliki source są przenoszone do katalogu docelowego. Jeśli podasz pojedynczy plik jako source , a destination docelowym jest istniejący katalog, plik zostanie przeniesiony do określonego katalogu. Aby zmienić nazwę pliku, musisz określić pojedynczy plik jako source i pojedynczy plik jako destination docelowe.

Na przykład, aby zmienić nazwę pliku file1.txt na file2.txt , należy uruchomić:

mv file1.txt file2.txt

Zmienianie nazw wielu plików za pomocą polecenia mv Command

Polecenie mv może zmienić nazwę tylko jednego pliku na raz, ale można go używać w połączeniu z innymi poleceniami, takimi jak find lub inside bash for lub while loop, aby zmienić nazwę wielu plików.

Poniższy przykład pokazuje, jak użyć pętli Bash for do zmiany nazwy wszystkich plików .html w bieżącym katalogu, zmieniając rozszerzenie .html na .php .

for f in *.html; do mv -- "$f" "${f%.html}.php" done

Przeanalizujmy kod linia po linii:

  • Pierwszy wiersz tworzy pętlę for i iteruje listę wszystkich plików z krawędziami .html . Drugi wiersz dotyczy każdej pozycji na liście i przenosi plik do nowego, zastępując .html plikiem .php . Część ${file%.html} używa rozszerzenia parametru powłoki do usunięcia części .html z pliku..done wskazuje koniec segmentu pętli.

Możemy również użyć polecenia mv w połączeniu z find aby osiągnąć to samo, co powyżej.

find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

Polecenie find przekazuje kolejno wszystkie pliki z rozszerzeniem .html w bieżącym katalogu do polecenia mv za pomocą przełącznika -exec . Ciąg {} to nazwa aktualnie przetwarzanego pliku.

Jak widać z powyższych przykładów, zmiana nazwy wielu plików przy użyciu polecenia mv nie jest łatwym zadaniem, ponieważ wymaga dobrej znajomości skryptów Bash.

Zmiana nazw plików za pomocą polecenia Zmień nazwę

Polecenie rename służy do zmiany nazwy wielu plików. To polecenie jest bardziej zaawansowane niż mv ponieważ wymaga podstawowej wiedzy na temat wyrażeń regularnych.

Istnieją dwie wersje polecenia rename o różnej składni. W tym samouczku będziemy używać wersji perl polecenia rename . Jeśli nie masz zainstalowanej tej wersji w systemie, możesz łatwo zainstalować ją za pomocą menedżera pakietów swojej dystrybucji.

  • Zainstaluj zmianę nazwy na Ubuntu i Debianie

    sudo apt install rename

    Zainstaluj zmianę nazwy na CentOS i Fedorze

    sudo yum install prename

    Zainstaluj zmianę nazwy w Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

Składnia polecenia rename jest następująca:

rename perlexpr files

Polecenie rename zmieni nazwę wszystkich files zgodnie z określonym wyrażeniem regularnym perlexpr . Możesz o perl wyrażeniach regularnych tutaj.

Na przykład następujące polecenie zmieni wszystkie pliki z rozszerzeniem .html na .php :

rename 's/.html/.php/' *.html

Możesz użyć argumentu -n aby wydrukować nazwy plików, których nazwy należy zmienić, bez zmiany ich nazw.

rename -n 's/.html/.php/' *.html

Dane wyjściowe będą wyglądać mniej więcej tak:

rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)

Domyślnie polecenie zmiany nazwy nie zastąpi istniejących plików. Przekaż argument -f aby zezwolić na nadpisywanie istniejących plików.

rename -f 's/.html/.php/' *.html

Poniżej znajduje się kilka bardziej typowych przykładów użycia polecenia rename:

  • Zastąp spacje w nazwach plików podkreśleniami

    rename 'y/ /_/' *

    Konwertuj nazwy plików na małe litery

    rename 'y/AZ/az/' *

    Konwertuj nazwy plików na wielkie litery

    rename 'y/az/AZ/' *

Wniosek

Do tej pory powinieneś dobrze rozumieć, jak używać komend mv i rename , aby zmieniać nazwy plików. Oczywiście istnieją inne polecenia zmiany nazwy plików w systemie Linux, takie jak mmv . Nowi użytkownicy Linuksa, którzy są zastraszani przez wiersz poleceń, mogą korzystać z narzędzi do zmiany nazw partii GUI, takich jak Metamorfoza.

zmień nazwę terminala mv