zmiana nazw plików w systemach Linux jest zwykle obsługiwana przez polecenie mv
(przenieś). Składnia jest po prostu mv old.txt new.txt
. Proste, ale co, jeśli mamy wiele plików, które muszą być przemianowane na raz, nawet setki z nich? Domyślne narzędzie mv nie może obsłużyć zmiany nazwy więcej niż jednego pliku, chyba że wykonamy trochę skryptów. Istnieją również inne narzędzia, które możemy zainstalować, aby rozwiązać problem, takie jak rename
i mmv
.
w tym przewodniku pokażemy Ci, jak używać polecenia mv
, a także narzędzi rename
i mmv
do zmiany nazw wielu plików w dystrybucji Linuksa. Omówimy kilka przykładów, abyś mógł zrozumieć składnię i sposób korzystania z każdej metody.
w tym tutorialu dowiesz się:
- jak zmienić nazwy wielu plików naraz za pomocą polecenia mv
- jak zainstalować rename na głównych dystrybucjach Linuksa
- jak zainstalować mmv na głównych dystrybucjach Linuksa
- jak używać mmv, poprzez przykłady poleceń
- jak używać rename, poprzez przykłady poleceń
Kategoria | wymagania, konwencje lub Wersja oprogramowania Używany |
---|---|
System | Dowolna dystrybucja Linuksa |
oprogramowanie | mv, rename, mmv |
Inne | uprzywilejowany dostęp do systemu Linux jako root lub za pomocą polecenia sudo . |
konwencje | # – wymaga wykonania podanych poleceń Linuksa z uprawnieniami roota albo bezpośrednio jako użytkownik root albo przy użyciu polecenia sudo $ – wymaga wykonania podanych poleceń Linuksa jako zwykły użytkownik nieuprzywilejowany |
Zmień nazwy wielu plików jednocześnie za pomocą polecenia mv
zmiana nazwy wielu plików za pomocą polecenia MV jest łatwiejsza, jeśli znasz trochę skryptów Bash. Spójrz na niektóre z poniższych przykładów, aby zobaczyć niektóre typowe zastosowania tej metody.
- poniższe polecenie dodarozszerzenie pliku txt do wszystkich plików w obecnym katalogu roboczym.
$ for i in $( ls ); do mv $i $i.txt; done
- aby usunąć rozszerzenie pliku ze wszystkich plików, możesz użyć tego polecenia.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- możemy również zmienić rozszerzenie pliku KAŻDEGO pliku. Poniższe polecenie zmieni wszystkie pliki z .rozszerzenie dziennika do .txt.
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- Możesz również użyć polecenia Znajdź, wraz z opcją
-exec
lub poleceniem xargs, aby zmienić nazwy wielu plików naraz. To polecenie zostanie dołączone .bak do każdego pliku, który zaczyna się od wzorca „plik”.$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- to polecenie używa opcji find I
-exec
, aby dołączyć „_backup” do wszystkich plików, które kończą się na .rozszerzenie txt.$ find . -name "*.txt" -exec mv {} {}_backup \;
- możemy również użyć xargs, aby zrobić to samo. To polecenie zaakceptuje standardowe wejście z polecenia
ls
, a następnie użyj xargs, aby dodać „_backup” do wszystkich plików, które kończą się na .rozszerzenie txt.$ ls *.txt | xargs -I{} mv {} {}_backup
- aby zmienić wszystkie pliki z .txt w obecnym katalogu, aby mieć tylko małe litery, to polecenie wykona zadanie.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
zaletą tej metody jest to, że nie potrzebujemy żadnego dodatkowego oprogramowania dla Linuksa – po prostu używamy natywnego narzędzia mv, a czasami w połączeniu z ls, find lub xargs. Jednak, jak widzieliśmy w tych przykładach, zrobienie czegoś prostego, takiego jak zmiana nazwy kilku plików, może być dość skomplikowane. Sprawdź niektóre z innych metod poniżej, aby zobaczyć kilka wygodniejszych opcji, które wymagają instalacji.
zainstaluj narzędzie Zmień nazwę
twoja dystrybucja Linuksa może już mieć domyślnie zainstalowaną rename
. Na wypadek, gdyby nie został jeszcze zainstalowany, możesz użyć odpowiedniego polecenia poniżej, aby zainstalować go za pośrednictwem menedżera pakietów systemu.
aby zainstalować Zmień nazwę na Ubuntu, Debian i Linux Mint:
$ sudo apt install rename
aby zainstalować Zmień nazwę na CentOS, Fedora, AlmaLinux i Red Hat:
$ sudo dnf install prename
aby zainstalować rename na Arch Linux i Manjaro:
$ sudo pacman -S perl-rename
przykłady polecenia Zmień nazwę
polecenie rename
akceptuje wyrażenie Perla, aby dokonać rzeczywistej zmiany nazwy. Jeśli znasz już tę składnię, zmiana nazwy będzie bardzo łatwa w użyciu. Jeśli nie, nie martw się, mamy kilka przykładów poniżej, które pomogą Ci opanować to.
tutaj zebraliśmy niektóre z najczęstszych scenariuszy, które trzeba by zmienić nazwy wielu plików naraz. Polecenia te zakładają, że pliki, które chcesz zmienić nazwę, znajdują się w bieżącym katalogu roboczym. Zawsze możesz określić ścieżkę do innych katalogów, jeśli chcesz.
istnieje kilka opcji, których możesz użyć z rename
. Opcja -n
pokaże ci, jakie zmiany ma dokonać zmiana nazwy, bez faktycznego wprowadzania zmian. Pomaga to uniknąć niepożądanych zmian. Opcja -v
(gadatliwa) wyświetli nazwy plików, które zostały pomyślnie przemianowane.
- to polecenie zmieni nazwy wielkich liter na małe.
$ rename 'y/A-Z/a-z/' *
lub, aby przekonwertować małe litery na wielkie:
$ rename 'y/a-z/A-Z/' *
- aby zmienić rozszerzenie kilku plików, użyj następującej składni. Ten konkretny przykład nawróci się .pliki dziennika do .pliki txt.
$ rename 's/\.log$/\.txt/' *.log
- aby nadać wielką literę każdej nazwy pliku, użyj następującego polecenia.
$ rename 's/\b(\w)/\U/g' *
- aby usunąć wszystkie spacje z nazw plików, wykonaj to polecenie.
$ rename "s/ *//g" *
lub, aby zastąpić spacje podkreślnikami:
$ rename 's/\s+/_/g' *
- aby usunąć rozszerzenie pliku z kilku plików, użyj następującej składni. Ten przykład usunie .rozszerzenie bak.
$ rename 's/\.bak$//' *.bak
zainstaluj narzędzie mmv
możesz użyć odpowiedniego polecenia poniżej, aby zainstalować mmv za pośrednictwem menedżera pakietów systemu.
aby zainstalować mmv na Ubuntu, Debianie i Linux Mint:
$ sudo apt install mmv
aby zainstalować mmv na CentOS, Fedora, AlmaLinux i Red Hat:
$ sudo dnf install mmv
aby zainstalować mmv na Arch Linux i Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
przykłady poleceń mmv
najbardziej atrakcyjną cechą mmv jest możliwość łatwej zmiany nazw wielu plików poprzez akceptację symboli wieloznacznych w poleceniu. Umożliwia to łatwe dołączanie lub usuwanie niektórych wzorców z nazw plików, a nawet układanie tekstu w nazwach. Zapoznaj się z poniższymi przykładami, aby poznać składnię narzędzia mmv i zobaczyć niektóre z najczęściej używanych poleceń. Pamiętaj, że możesz użyć opcji -n
w mmv, aby wyświetlić podgląd zmian.
- Użyj tego przykładu, aby zmienić rozszerzenie pliku na kilku plikach. To polecenie zmieni wszystkie pliki z rozszerzeniem .htm do .html.
$ mmv '*.htm' '#1.html'
- to polecenie zastąpi pierwsze wystąpienie „foo” na „bar” we wszystkich nazwach plików.
$ mmv '*foo*' '#1bar#2'
- poniższe polecenie daje wyobrażenie o tym, jak można użyć mmv do zmiany kolejności części nazwy pliku. Ten przykład pobierze pliki takie jak
access.log-dbserver
irejected.log-webserver
i zmieni ich nazwy odpowiednio naaccess-dbserver.log
irejected-webserver.log
. Aby to zadziałało, musimy mieć spójny wzór, taki jak myślnik i kropka w tym przypadku.
$ mmv '*.log-*' '#1-#2.log'
- zmień wszystkie nazwy plików na małe litery za pomocą tego polecenia.
$ mmv '*' '#l1'
- odwrotnie, Zmień nazwy plików na wszystkie wielkie litery za pomocą tego.
$ mmv '*' '#u1'
Uwagi końcowe
w tym przewodniku nauczyliśmy się kilku różnych metod zmiany nazw wielu plików jednocześnie w systemie Linux. Widzieliśmy również wiele przykładów wiersza poleceń, które mogą obejmować wiele różnych scenariuszy lub być łatwo dostosowane do podobnych sytuacji. Masową zmianę nazwy można wykonać za pomocą natywnych narzędzi bash, takich jak mv, ls, xargs I find, lub możemy zainstalować narzędzie mmv lub zmienić nazwę, aby nasze życie było trochę łatwiejsze. Każda metoda ma swoje mocne i słabe strony, więc użyj tego, który uważasz, że będzie dla Ciebie najwygodniejszy.