Jak zmienić nazwę katalogu w systemie Linux

Jak zmienić nazwę katalogu w systemie Linux

Zmiana nazwy katalogu w Linuksie jest łatwa i jest na to wiele sposobów. Oto jak to zrobić, od zmiany nazwy jednego katalogu do wyszukiwania i zmiany nazwy wielu.

Twoje dane są bezpieczne

Zmiana nazw katalogów to coś, co wszyscy musimy od czasu do czasu robić.

Możemy stworzyć katalog i błędnie wpisać jego nazwę i chcemy to naprawić. Często przeznaczenie katalogu zmienia się w czasie lub w trakcie trwania projektu i chcesz zmienić nazwę, aby odzwierciedlić jego nowe zastosowanie. Być może rozpakowałeś plik archiwum i utworzyłeś drzewo katalogów z nazwami katalogów pisanymi wielkimi literami i chcesz, aby były pisane małymi literami.

Bez względu na przyczynę. zmiana nazwy katalogu nie ma wpływu na zawarte w nim dane. Zmienia ścieżkę do tych danych, ale nie ma to wpływu na pliki i katalogi w katalogu o zmienionej nazwie.

Nie zmieniaj nazw katalogów systemowych. Zmiana ścieżki do plików i poleceń systemowych, delikatnie mówiąc, wpłynie negatywnie na działanie komputera. Jeśli musisz użyć sudodo zmiany nazwy katalogu – chyba że naprawdę wiesz, co robisz – prawdopodobnie nie powinieneś zmieniać nazwy.

Korzystanie z polecenia mv

W najprostszych przypadkach tak naprawdę potrzebujemy tylko mvpolecenia. Jest integralną częścią każdej dystrybucji Linuksa, więc nie ma nic do zainstalowania.

W mvchwili pisania tego tekstu zespół ma ponad 50 lat. Sięga on początków systemu Unix, kiedy modne były krótkie i tajemnicze polecenia, prawdopodobnie w celu zmniejszenia liczby znaków, które musiały podróżować wolnymi liniami szeregowymi z dalekopisów i głupich terminali do prawdziwego 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ę, zmienisz nazwę pliku. To samo możemy zrobić z katalogami.

Ten katalog ma dwa podkatalogi.

ls

Aby zmienić nazwę katalogu, używamy polecenia mv. Musimy określić aktualną nazwę katalogu i nową nazwę.

mv old-work archive-2

Jeśli katalog, którego nazwę chcesz zmienić, nie znajduje się w bieżącym katalogu, podaj ścieżkę i nazwę katalogu.

mv ~/htg/old-work ~/htg/archive-2ls

Korzystanie z przeglądarki plików

Przeglądarki plików mogą zmieniać nazwy katalogów. Kluczem w aplikacji Pliki GNOME jest F2. Wybranie katalogu i naciśnięcie F2 otwiera okno dialogowe Zmień nazwę folderu.

Wprowadź nową nazwę i kliknij zielony przycisk Zmień nazwę.

Nazwa katalogu została zmieniona dla Ciebie.

To takie proste.

Zmień nazwę polecenia

Jeśli Twoje potrzeby są bardziej złożone niż zwykła zmiana nazwy katalogu, może być konieczne użycie renamepolecenia. Pozwala to na użycie wyrażeń Perla do zmiany nazw plików i katalogów. Zapewnia wydajniejszy i bardziej elastyczny sposób zmiany nazw katalogów.

Będziemy mówić o poleceniu opartym na Perlu rename. Istnieje inne, starsze polecenie rename , które jest częścią podstawowych narzędzi systemu Linux. Prawdopodobnie będziesz musiał zainstalować polecenie Perl rename, którego chcemy użyć.

Aby uniknąć konfliktów nazw z istniejącym poleceniem, w Fedorze i Manjaro wywoływane jest renamepolecenie Perl . W Ubuntu oba polecenia i są dowiązaniami symbolicznymi, które prowadzą do pliku binarnego o nazwie .renameprenameperl-renamerenameprenamefile-rename

Tak więc w Manjaro będziesz musiał użyć polecenia perl-rename, a w Fedorze będziesz musiał użyć prename. W Ubuntu możesz renameużyć prename.

Aby zainstalować zmianę nazwy Perla, na Ubuntu musisz wpisać:

sudo apt install rename

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 renamepobiera wyrażenia regularne Perla i stosuje je do pliku lub katalogu, albo do grupy plików lub katalogów.

Nasz katalog zawiera 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.

rename 'y/A-Z/a-z/' *ls

Wszystkie katalogi są teraz pisane małymi literami, niezależnie od tego, czy były wcześniej w pełni wielkimi literami, czy zawierały nieparzystą wielką literę.

Cała magia tkwi w ekspresji. Wyrażenie jest ujęte w pojedyncze cudzysłowy „ '”. To właśnie oznacza cały zespół.

  • 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 z gwiazdką oznacza, że ​​dotyczy to wszystkich katalogów.

Innymi słowy, polecenie brzmi „dla wszystkich katalogów zastąp wszystkie wielkie litery ich odpowiednikami małymi literami”.

Oczywiście możesz zmienić nazwę pojedynczego katalogu za pomocą rename, chociaż wygląda to na zbędne. Będziesz szybszy przy użyciu mv.

rename 's/gamma/epsilon-2/' *ls

Litera „S” w tym wyrażeniu oznacza zastąpienie. 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 on również do katalogu o nazwie „gamma-zeta”, na przykład zmieniając jego nazwę na „epsilon-2-zeta”.

Można tego uniknąć, dodając metaznaki początku wiersza „ ^” i końca wiersza „ $” do pierwszej klauzuli wyrażenia.

lsrename '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 znaleźć katalogi, nad którymi chcemy renamepracować. Jeśli mamy zestaw zagnieżdżonych katalogów i chcemy zmienić nazwy wszystkich, które kończą się „-old” na „-archive”, możemy to osiągnąć za pomocą findi xargs.

Musimy użyć , xargsponieważ renamenie akceptuje danych wejściowych z potoku. Polecenie xargsrozwiązuje ten problem, pobierając dane wejściowe z potoku i dodając kolejne polecenie do wiersza polecenia jako parametr wiersza polecenia.

Nasz zespół wygląda tak:

find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"

  • .: Mówimy find, aby rozpoczął wyszukiwanie w bieżącym katalogu. Oczywiście może być tak.
  • -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.
  • -name „*-old”: wskazówka wyszukiwania. Szukamy katalogów o nazwach kończących się na „-stare”.
  • |: Przekazujemy wyjście polecenia find do xargspolecenia.
  • xargs -r: -r(nie uruchamiaj, jeśli jest pusty) oznacza, że ​​nie uruchamiaj polecenia, jeśli nie ma odpowiednich katalogów.
  • zmień nazwę „s/stary$/archiwum/”: renamepolecenie do uruchomienia.

Nasze drzewo katalogów wygląda tak przed poleceniem.

Uruchommy nasze polecenie:

Widzimy, że zmieniono nazwy wszystkich odpowiednich katalogów, w tym podkatalogów.

Nie potrzebujesz niczego innego niż mv. Jeśli wolisz aplikacje z graficznym interfejsem użytkownika, możesz skorzystać z przeglądarki plików. Jeśli musisz zmienić nazwy wielu katalogów, zwłaszcza jeśli są one rozproszone w drzewie katalogów, będziesz potrzebować elastyczności rename.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *