Zmiana nazw plików to jedno z najbardziej podstawowych zadań, które często trzeba wykonywać w systemie Linux. Możesz zmienić nazwy plików za pomocą menedżera plików GUI lub terminala wiersza poleceń.
Zmiana nazwy pojedynczego pliku jest łatwa, ale zmiana nazwy wielu plików jednocześnie może być wyzwaniem, szczególnie dla użytkowników, którzy nie znają Linuksa .
W tym samouczku pokażemy, jak używać poleceń mv
i rename
do zmiany nazw 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 z jednej lokalizacji do drugiej. Składnia polecenia mv
jest następująca:
source
może być jednym lub wieloma plikami lub katalogami, a destination
może być pojedynczym plikiem lub katalogiem.
- Jeśli określisz wiele plików jako
source
,destination
musi być katalogiem. W tym przypadku plikisource
są przenoszone do katalogu docelowego. - Jeśli określisz pojedynczy plik jako
source
, a celemdestination
jest istniejący katalog, plik jest przenoszony do wskazanego katalogu. - Aby zmienić nazwę pliku, należy określić pojedynczy plik jako
source
, a pojedynczy plik jakodestination
cel.
Na przykład, aby zmień nazwę pliku file1.txt
na file2.txt
, który chcesz uruchomić:
Zmiana nazwy wielu plików za pomocą polecenia mv #
Polecenie mv
może zmienić nazwę tylko jednego pliku naraz, ale można go używać w połączeniu z innymi poleceniami, takimi jak jako find
lub w pętli bash for
lub while
, aby zmienić nazwę wielu plików.
Poniższy przykład pokazuje, jak używać pętli Bash for do zmiany nazwy wszystkich elementów .html
pliki w bieżącym katalogu, zmieniając rozszerzenie .html
na .php
.
Przeanalizujmy kod linia po linii:
- Pierwsza linia tworzy
for
i iteruje listę wszystkich plików z.html
. - Druga linia dotyczy każdego elementu listy i przenosi plik do nowy zastępujący
.html
przez.php
. Część${file%.html}
używa rozszerzenia parametrów powłoki do usunięcia części.html
z nazwy pliku. -
done
wskazuje koniec segmentu pętli.
Oto przykład użycia mv
w połączeniu z find
, aby osiągnąć to samo co powyżej:
przekazuje wszystkie pliki kończące się na .html
w bieżącym katalogu do mv
jeden po drugim za pomocą -exec
opcja. Ciąg {}
to nazwa aktualnie przetwarzanego pliku.
Jak widać na powyższych przykładach, zmiana nazwy wielu plików za pomocą nie jest łatwym zadaniem, ponieważ wymaga dobrej znajomości skryptów Bash.
Zmiana nazw plików za pomocą polecenia zmiany nazwy #
rename
służy do zmiany nazwy wielu plików. To polecenie jest bardziej zaawansowane niż mv
, ponieważ wymaga pewnej podstawowej znajomości wyrażeń regularnych.
Istnieją dwie wersje rename
z inną składnią. W tym samouczku będziemy używać wersji Perl polecenia rename
. Jeśli nie masz tej wersji zainstalowanej w systemie, możesz ją łatwo zainstalować za pomocą menedżera pakietów swojej dystrybucji.
-
Zainstaluj
rename
na Ubuntu i Debian -
Zainstaluj
rename
na CentOS i Fedorze -
Zainstaluj
rename
w Arch Linux
Składnia polecenia rename
jest następująca:
Polecenie rename
zmieni nazwę files
zgodnie z określonym perlexpr
wyrażenie regularne. Możesz przeczytać więcej o wyrażeniach regularnych w Perlu tutaj.
Poniższy przykład zmieni wszystkie pliki z rozszerzeniem .html
na .php
:
Możesz użyć opcji -n
, aby wydrukować nazwy plików, których nazwy chcesz zmienić, bez zmiany ich nazwy.
Wynik będzie wyglądał mniej więcej tak:
Domyślnie polecenie rename
nie zastępuje istniejących plików. Przekaż opcję -f
, aby umożliwić zastąpienie istniejących plików:
Poniżej znajduje się kilka typowych przykłady użycia polecenia rename
:
Wniosek #
Pokazaliśmy, jak używać mv
i rename
polecenia do zmiany nazw plików.
Istnieją również inne polecenia do zmiany nazw plików w systemie Linux, takie jak mmv
. Nowi użytkownicy Linuksa, których onieśmiela wiersz poleceń, mogą używać narzędzi do zmiany nazwy partii GUI, takich jak Métamorphose.