wprowadzenie
Linux oferuje kilka opcji zmiany nazw plików, w tym za pomocą GUI i wielu dedykowanych poleceń terminala. Dzięki temu stosunkowo łatwo jest zmienić nazwy pojedynczych plików, ale zmiana nazw wielu plików naraz może być trudna.
w tym samouczku omówimy różne polecenia, których możesz użyć w terminalu Linux do zmiany nazw plików w Linuksie.
wymagania wstępne
- system z dystrybucją Linuksa
- konto z uprawnieniami sudo
- dostęp do okna terminala/wiersza poleceń
- dostęp do edytora tekstu, takiego jak Vim lub Nano
zmiana nazw plików za pomocą polecenia mv
polecenie Linux mv
(Move) służy do przenoszenia plików i katalogów z terminala. Używa następującej składni:
mv
jeśli podczas używania polecenia mv
podasz katalog jako miejsce docelowe, plik źródłowy zostanie przeniesiony do tego katalogu. Jeśli docelowym plikiem jest inna nazwa pliku, polecenie mv
zmienia nazwę pliku źródłowego na tę nazwę.
Uwaga: dowiedz się więcej o używaniu polecenia mv w naszym Przewodniku po przenoszeniu katalogów w Linuksie.
Zmień nazwę pojedynczego pliku za pomocą polecenia mv
za pomocą polecenia mv
z domyślną składnią pozwala zmienić nazwę pojedynczego pliku:
mv
na przykład, jeśli chcemy zmienić nazwę przykładu1.txt do example2.txt, użylibyśmy:
mv example1.txt example2.txt
ponieważ nie ma wyjścia, jeśli polecenie powiedzie się, używamy polecenia ls
, aby sprawdzić, czy nazwa została zmieniona:
ls -l
Zmień nazwy wielu plików za pomocą polecenia mv
samodzielnie, polecenie mv
zmienia nazwę pojedynczego pliku. Jednak połączenie go z innymi poleceniami pozwala na zmianę nazw wielu plików w tym samym czasie.
jedną z metod jest użycie polecenia find
, aby wybrać wiele plików o podobnej nazwie, a następnie użyj polecenia mv
, aby zmienić ich nazwę:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
używając tej składni, polecenie find
definiuje element bieżącej nazwy pliku jako parametr wyszukiwania. Następnie -exec
wykonuje polecenie mv
dla wszystkich plików, które pasują do wyszukiwania, zmieniając ich bieżące nazwy na nowe.
na przykład, jeśli mamy przykład1.txt, przykład2.txt i example3.txt i chcesz zmienić rozszerzenie na .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
inną metodą jest użycie polecenia mv
jako części pętli <strong>for</strong>
w skrypcie bash.
korzystając z tego samego przykładu, zacznij od utworzenia i otwarcia pliku skryptu bash za pomocą edytora tekstu, takiego jak Nano:
sudo nano rename_files.sh
Uwaga: dowiedz się więcej o używaniu skryptów bash do zarządzania plikami i katalogami w Linuksie.
dodaj następujące linie do skryptu:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
w powyższym skrypcie:
- pierwsza linia poleca skryptowi wyszukiwanie wszystkich plików w bieżącym katalogu zakończonym na .txt.
- druga linia używa polecenia
mv
na każdym znalezionym pliku, aby zastąpić .rozszerzenie txt z .pdf. - trzecia linia kończy odcinek pętli.
naciśnij Ctrl+X, następnie wpisz Y i naciśnij Enter, aby zapisać zmiany w skrypcie i zakończyć.
użyj polecenia sh
, aby wykonać skrypt:
sh rename_files.sh
Zmień nazwę pliku za pomocą polecenia Zmień nazwę
polecenie rename
służy do zmiany nazw wielu plików lub katalogów w systemie Linux. Oferuje więcej funkcji niż polecenie mv
, ale może być trudniejsze w użyciu, ponieważ wymaga podstawowej znajomości wyrażeń Perla.
Jak zainstalować polecenie Zmień nazwę
w wielu dystrybucjach Linuksa polecenie rename
nie jest domyślnie dostępne. Jeśli w systemie brakuje polecenia rename
, zainstaluj je za pomocą:
- Dla Ubuntu i Debiana, użyj
sudo apt install rename
- dla CentOS i Fedory, użyj
sudo yum install prename
- dla Arch Linux, użyj
sudo pacman -S
Zmień nazwę
Zmień składnię poleceń i opcje
istnieją trzy typy wyrażeń regularnych Perla:, zastąpić i przetłumaczyć. Polecenie rename
używa zastępczych i tłumaczeniowych wyrażeń do zmiany nazw plików i katalogów.
wyrażenia zastępcze zastępują część nazwy pliku innym ciągiem znaków. Używają następującej składni:
rename 's///'
w tej składni polecenie zmienia nazwę pliku, zastępując pierwsze wystąpienie elementu filename jego zamiennikiem. W powyższym poleceniu:
-
rename
: wywołuje polecenie Zmień nazwę. -
: dostarcza opcjonalny argument, który zmienia sposób wykonywania polecenia.
-
s
: oznacza wyrażenie zastępcze. -
: określa część nazwy pliku, którą chcesz zastąpić.
-
: określa zamiennik części bieżącej nazwy pliku.
-
: definiuje plik, który chcesz zmienić nazwę.
wyrażenie translate przekłada jeden ciąg znaków na drugi, znak za znak. Ten typ wyrażenia używa następującej składni:
rename 'y///'
przykład polecenia rename
używającego wyrażenia translate:
rename 'y/abc/xyz/'
w tym przykładzie każdy znak a w nazwie pliku jest zastępowany przez x, każdy b Przez y, a każdy c przez z.
polecenie Zmień nazwę używa następujących opcji:
-
-a
: zastępuje wszystkie wystąpienia elementu filename zamiast tylko pierwszego. -
-f
: Wymusza nadpisanie istniejących plików. -
-h
: wyświetla tekst pomocy. -
-i
: wyświetla monit przed nadpisaniem istniejących plików. -
-l
: zastępuje ostatnie wystąpienie elementu filename zamiast pierwszego. -
-n
: wykonuje pracę na sucho, nie dokonując trwałych zmian. Najlepiej w połączeniu z wyjściem gadatliwym (-v
). -
-s
: zmienia nazwę obiektu docelowego zamiast dowiązania symbolicznego. -
-v
: pokazuje obszerną wersję wyjścia. -
-V
: wyświetla wersję polecenia.
Zmień nazwę przykłady poleceń
1. Zmień rozszerzenie pliku
Wracając do naszego ostatniego przykładu, aby zmienić rozszerzenie pliku z .txt do .pdf, użyj:
rename -v 's/.txt/.pdf/' *.txt
2. Zastąpienie części nazwy pliku
zastąpienie innej części nazwy pliku odbywa się w ten sam sposób. Aby zmienić nazwę przykładu1.txt, przykład2.txt i example3.txt do test1.txt, test2.txt i text3.txt, użyj:
rename -v 's/example/test/' *.txt
3. Usuń część nazwy pliku
opcja rename
pozwala również usunąć część nazwy pliku, pomijając zamienną część wyrażenia. Na przykład, jeśli chcemy skrócić przykład do ex:
rename -v 's/ample//' *.txt
4. Zmiana nazw plików o podobnych nazwach
innym zastosowaniem opcji rename
jest zmiana nazw plików o podobnych nazwach. Na przykład, jeśli chcemy zmienić nazwy plików z example I sample w ich nazwie, aby przetestować:
rename -v 's/(ex|s)ample/test/' *.txt
5. Zmiana nazw plików znak po znaku
polecenie rename
pozwala również na używanie wyrażeń tłumaczeniowych do zmiany nazw plików na podstawie znaków po znakach. Na przykład, jeśli chcesz zmienić nazwę wielu plików o nazwie przykładowy plik, zastępując puste miejsce znakiem podkreślenia (_):
rename -v 'y/ /\_/' *.txt
6. Konwertuj małe litery
aby przekonwertować małe litery w nazwach plików na wielkie litery, użyj:
rename -v 'y/a-z/A-Z/' *.txt
7. Konwertuj Wielkie Litery
odwrotność działa również, jeśli zmienimy kolejność wielkich i małych liter w wyrażeniu:
rename -v 'y/A-Z/a-z/' *.TXT
Uwaga: Należy zachować ostrożność podczas zmiany wielkości liter, ponieważ zmienia to również rozszerzenie pliku.
wniosek
po przeczytaniu tego samouczka powinieneś być w stanie zmienić nazwy plików za pomocą poleceń mv
i rename
w Linuksie.
dowiedz się więcej o używaniu poleceń Linuksa w naszym arkuszu poleceń Linuksa.