Jak zmienić nazwę katalogu w systemie Linux
Opublikowany: 2022-06-16Zmiana nazwy katalogu w Linuksie jest łatwa i istnieje wiele sposobów na zrobienie tego. Od zmiany nazwy pojedynczego katalogu do znajdowania i zmieniania nazw wielu, oto jak to zrobić.
Twoje dane są bezpieczne
Zmiana nazw katalogów to coś, co wszyscy musimy od czasu do czasu robić.
Możemy utworzyć katalog i błędnie przepisać jego nazwę, i chcemy to naprawić. Często cel katalogu zmienia się w czasie lub w trakcie trwania projektu i chcesz dostosować nazwę, aby odzwierciedlała jego nowe zastosowanie. Być może zdekompresowałeś plik archiwum i utworzyłeś drzewo katalogów z nazwami katalogów pisanymi wielkimi literami, a chciałbyś, aby były pisane małymi literami.
Jakikolwiek powód. zmiana nazwy katalogu nie wpływa na przechowywane w nim dane. Zmienia ścieżkę do tych danych, ale pliki i katalogi w katalogu o zmienionej nazwie pozostają nienaruszone.
Nie zmieniaj nazw katalogów systemowych. Zmiana ścieżki do plików systemowych i poleceń będzie miała co najmniej szkodliwy wpływ na działanie komputera. Jeśli musisz użyć sudo
do zmiany nazwy katalogu — chyba że naprawdę wiesz, co robisz — prawdopodobnie nie powinieneś zmieniać nazwy.
Korzystanie z polecenia mv
W najprostszych przypadkach wszystko, czego naprawdę potrzebujemy, to polecenie mv
. Jest to integralna część każdej dystrybucji Linuksa, więc nie ma nic do zainstalowania.
Komenda mv
ma ponad 50 lat w momencie pisania tego tekstu. Pochodzi z zarania Uniksa, kiedy modne były krótkie i tajemnicze polecenia, prawdopodobnie po to, by zmniejszyć liczbę znaków, które musiały przechodzić wolnymi liniami szeregowymi od dalekopisów i głupich terminali do rzeczywistego komputera.
W rzeczywistości oznacza „przenieś” i może być używany do przenoszenia plików z katalogu do katalogu. Jeśli przeniesiesz plik do tej samej lokalizacji, w której już się znajduje, i nadasz mu nową nazwę, zmieniłeś nazwę pliku. To samo możemy zrobić z katalogami.
W tym katalogu znajdują się dwa podkatalogi.
ls
Aby zmienić nazwę katalogu, używamy polecenia mv. Musimy podać aktualną nazwę katalogu i nową nazwę.
mv archiwum starych prac-2
Jeśli katalog, którego nazwę chcesz zmienić, nie znajduje się w bieżącym katalogu, podaj ścieżkę oraz nazwę katalogu.
mv ~/htg/stara-praca ~/htg/archiwum-2
ls
Korzystanie z przeglądarki plików
Przeglądarki plików mogą zmieniać nazwy katalogów. Skrót klawiszowy w aplikacji Pliki GNOME to F2. Zaznaczenie katalogu i naciśnięcie klawisza F2 otwiera okno dialogowe „Zmień nazwę folderu”.
Wpisz nową nazwę i kliknij zielony przycisk „Zmień nazwę”.
Nazwa katalogu została zmieniona dla Ciebie.
To takie proste.
Polecenie zmiany nazwy
Jeśli twoje potrzeby są bardziej skomplikowane niż prosta zmiana nazwy katalogu, możesz potrzebować użyć polecenia rename
. Pozwala to na użycie wyrażeń Perla do zmiany nazw plików i katalogów. Zapewnia znacznie wydajniejszy i bardziej elastyczny sposób zmiany nazw katalogów.
Będziemy mówić o poleceniu rename
opartym na Perlu. Istnieje inne, starsze polecenie o nazwie rename
, które jest częścią podstawowych narzędzi systemu Linux. Prawdopodobnie będziesz musiał zainstalować polecenie rename
Perla, którego chcemy użyć.
Aby uniknąć kolizji nazw z istniejącym poleceniem rename
, polecenie rename
Perla nazywa się prename
w Fedorze i perl-rename
w Manjaro. W Ubuntu polecenia rename
i prename
są dowiązaniami symbolicznymi, które prowadzą do pliku binarnego o nazwie file-rename
.
Tak więc w Manjaro poleceniem, którego będziesz potrzebować, jest perl-rename
, aw Fedorze jest to prename
. W Ubuntu możesz użyć rename
lub prename
.
Aby zainstalować zmianę nazwy Perla, na Ubuntu musisz wpisać:
sudo apt install zmień nazwę
W Fedorze polecenie to:
sudo dnf install prename
W Manjaro pakiet nazywa się perl-rename
.
sudo pacman -Sy perl-rename
Upewnij się, że używasz odpowiedniego polecenia dla swojej dystrybucji, jeśli chcesz pracować z przykładami.
Pierwsze kroki ze zmianą nazwy
Polecenie rename
pobiera wyrażenia regularne Perla i stosuje je do pliku lub katalogu, albo grupy plików lub katalogów.
W naszym katalogu mamy kolekcję innych katalogów.
ls
Ich nazwy są mieszanką małych, wielkich i mieszanych liter. Możemy je wszystkie przekonwertować na małe litery z odpowiednim wyrażeniem.
zmień nazwę 'y/AZ/az/' *
ls
Wszystkie katalogi są teraz pisane małymi literami, niezależnie od tego, czy wcześniej były w całości wielkimi literami, czy zawierały nieparzystą wielką literę.
Cała magia zawarta jest w wyrażeniu. Wyrażenie jest ujęte w pojedyncze cudzysłowy „ '
”. To właśnie oznacza całe polecenie.
- y : Oznacza to wyszukanie dowolnego znaku z pierwszego zakresu znaków i zastąpienie go odpowiednim znakiem z drugiego zakresu znaków.
- /AZ/az/ : Pierwszy zakres to wszystkie litery od „A” do „Z”, a drugi zakres to wszystkie znaki od „a” do „z”.
- * : Symbol wieloznaczny gwiazdki oznacza zastosowanie tego do wszystkich katalogów.
Innymi słowy, polecenie brzmi: „dla wszystkich katalogów zamień dowolne wielkie litery na równoważną małą literę”.
Oczywiście możesz zmienić nazwę pojedynczego katalogu za pomocą rename
, chociaż jest to przesada. Będziesz szybszy używając mv
.
zmień nazwę 's/gamma/epsilon-2/' *
ls
Litera „s” w tym wyrażeniu oznacza substytut. Sprawdza każdy katalog, aby zobaczyć, czy jego nazwa to „gamma”. Jeśli tak, zastępuje go „epsilon-2”. Należy jednak pamiętać, że pasowałby również do katalogu o nazwie „gamma-zeta”, na przykład zmieniając jego nazwę na „epsilon-2-zeta”.
Możemy tego uniknąć, dodając metaznaki początku ciągu „ ^
” i końca ciągu „ $
” do pierwszej klauzuli wyrażenia.
ls
zmień nazwę 's/^gamma$/epsilon-2/' *
ls
To pozostawia katalog „epsilon-2” nietknięty.
Używanie zmiany nazwy z innymi poleceniami
Możemy użyć innych poleceń, aby zlokalizować katalogi, nad którymi chcemy rename
. Jeśli mamy zestaw katalogów zagnieżdżonych i chcemy zmienić nazwy wszystkich, które kończą się na „-old”, tak aby kończyły się na „-archive”, możemy to osiągnąć za pomocą find
i xargs
.
Musimy użyć xargs
, ponieważ rename
nie akceptuje danych wejściowych z potoku. Polecenie xargs
rozwiązuje ten problem, akceptując dane wejściowe z potoku i dodając do wiersza polecenia innego polecenia jako parametr wiersza polecenia.
Nasze polecenie wygląda tak:
odnaleźć . -depth -type d -name "*-old" | xargs -r zmień nazwę "s/stary$/archiwum/"
- . : Mówimy find, aby rozpoczął wyszukiwanie w bieżącym katalogu. Oczywiście może to być dowolna ścieżka.
- -głębokość : Użyj wyszukiwania w głąb. Oznacza to, że zawartość głębiej zagnieżdżonych podkatalogów jest przetwarzana przed wyższymi.
- -type d : Szukaj katalogów, a nie plików.
- -nazwa „*-stare” : wskazówka wyszukiwania. Szukamy katalogów o nazwach kończących się na „-stare”.
- | : Przesyłamy dane wyjściowe z find do polecenia
xargs
. - xargs -r : Opcja
-r
(nie uruchamiaj, jeśli jest pusta) oznacza, że nie uruchamiaj polecenia, jeśli nie ma pasujących katalogów. - zmień nazwę „s/stary$/archiwum/” : Polecenie
rename
do uruchomienia.
Nasze drzewo katalogów wygląda tak przed poleceniem.
Uruchamiamy nasze polecenie:
Widzimy, że zmieniono nazwy wszystkich pasujących katalogów, w tym zagnieżdżonych.
Konie na kursy
Zmiana nazwy katalogu nie wymaga niczego więcej niż mv
. Jeśli wolisz aplikacje z graficznym interfejsem użytkownika, możesz użyć przeglądarki plików. Jeśli masz wiele katalogów do zmiany nazwy, a zwłaszcza jeśli są one rozproszone w drzewie katalogów, będziesz potrzebować elastyczności rename
.
POWIĄZANE: Jak zarządzać plikami z terminala Linux: 11 poleceń, które musisz znać