Android

Zmień nazwę polecenia w systemie Linux (zmień nazwę wielu plików)

Kurs Linux - 02 - Modyfikacja praw dostępu do plików z poziomu terminala

Kurs Linux - 02 - Modyfikacja praw dostępu do plików z poziomu terminala

Spisu treści:

Anonim

Zmiana nazwy wielu plików i katalogów za pomocą polecenia mv może być żmudnym procesem, ponieważ wymaga pisania skomplikowanych poleceń za pomocą potoków, pętli itp.

Tutaj przydaje się polecenie rename . Zmienia nazwę podanych plików, zastępując wyszukiwane wyrażenie w ich nazwie podanym zamiennikiem.

W tym samouczku wyjaśnimy, jak używać polecenia rename do grupowego zmieniania nazw plików.

Instalowanie rename

Istnieją dwie wersje polecenia rename o różnej składni i funkcjach. Będziemy używać wersji Perl polecenia rename .

Jeśli ta wersja nie jest zainstalowana w systemie, użyj menedżera pakietów swojej dystrybucji Linux, aby ją zainstalować:

  • Ubuntu i Debian

    sudo apt update sudo apt install rename

    CentOS i Fedora

    sudo yum install prename

    Arch Linux

    yay perl-rename

Używanie rename

Poniżej przedstawiono ogólną składnię polecenia rename :

rename perlexpr files

Polecenie rename to w zasadzie skrypt Perla. perlexpr nazwę podanych files zgodnie z określonym wyrażeniem regularnym perlexpr . Możesz przeczytać o wyrażeniach regularnych Perla tutaj.

Na przykład następujące polecenie zmieni rozszerzenie wszystkich plików .scss na .scss :

rename 's/.css/.scss/' *.css

Wyjaśnijmy to polecenie bardziej szczegółowo:

  • s/search_pattern/replacement/ - Operator podstawienia. .css - wzorzec wyszukiwania. Jest to pierwszy argument w operatorze podstawienia. Polecenie rename wyszuka ten wzorzec w podanej nazwie pliku, a jeśli go znajdzie, zastąpi go argumentem zastępującym. .scss - zamiennik. Drugi argument w operatorze podstawienia. *.css - Wszystkie pliki z rozszerzeniem „.css”. Symbol wieloznaczny ( * ) to symbol używany do reprezentowania zera, jednego lub więcej znaków.

Przed uruchomieniem rzeczywistej komendy i zmianą nazwy plików i katalogów zawsze warto skorzystać z opcji -n , która wykona „próbę” i pokaże, jakie pliki zostaną przemianowane:

rename -n 's/.css/.scss/' *.css

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

rename(file-0.css, file-0.scss) rename(file-1.css, file-1.scss) rename(file-2.css, file-2.scss) rename(file-3.css, file-3.scss) rename(file-4.css, file-4.scss)

Domyślnie polecenie rename nie zastępuje istniejących plików. Użyj opcji -f , która każe rename aby zastąpić istniejące pliki:

rename -f 's/.css/.scss/' *.css

rename -v 's/.css/.scss/' *.css

file-0.css renamed as file-0.scss file-1.css renamed as file-1.scss file-2.css renamed as file-2.scss file-3.css renamed as file-3.scss file-4.css renamed as file-4.scss

Przemianować

rename 's/\.jpe?g$/.jpg/i' *

Wniosek

Polecenie rename pozwala zmienić nazwę wielu plików jednocześnie, używając wyrażeń regularnych Perla.

zmień nazwę terminala