Jak radzić sobie z przestrzeniami w nazwach plików w Linux

Dec 14, 2024
Dystrybucja

Podobnie jak większość systemów operacyjnych, Linux obsługuje nazwy plików z przestrzeniami w nich. Ale użycie tych nazw plików w wierszu poleceń nie zawsze jest proste. Oto kilka sposobów obsługi nazw plików zawierających przestrzenie.

Pokorna nazwa pliku
Dlaczego przestrzenie w nazwach plików Linux są ból
Jak cytować i uciec od przestrzeni
Jak rozwiązać problem przestrzeni u jego źródła
Rozszerzenie zakładki ułatwia przestrzenie
Jak używać nazw plików z przestrzeniami w skryptach bash
Rozmieszczone, ale nie łuszczące się

Pokorna nazwa pliku

Wszystko przechowywane na twoim komputerze twardy dysk musi mieć nazwę. Bez nazwy żadne pliki nie istniałyby. Wszystkie aplikacje i demony są uruchamiane, gdy komputer się uruchamia, oraz całe używane oprogramowanie, należy zidentyfikować i przechowywać w systemie plików. Ta identyfikacja to nazwa pliku. ”

To samo dotyczy plików, które tworzysz lub instalujesz. Wszystkie Twoje dokumenty, obrazy i muzyka potrzebują nazw plików. Bez nazw plików żaden z twoich aktywów cyfrowych nie może istnieć. Ponieważ nazwy plików są tak ważne, Linux stara się nałożyć jak najwięcej zasad dotyczących ich składu.

W Linux nazwa pliku może zawierać dowolną postać oprócz cięcia do przodu ” / ”I zerowa postać, 0x00 . Znak zerowy służy do zaznaczenia końca łańcucha, więc nie może być obecny w samym ciągu, lub Linux obcięłby nazwę pliku w pozycji znaku zerowego. „„ / „Slash do przodu jest używany jako separator na ścieżkach katalogów.

Nazwy plików są wrażliwe na wielkość, i może trwać do 255 bajtów , w tym zerowy charakter. Ścieżki katalogów mogą mieć do 4096 bajtów, w tym zerowy charakter. Zauważ, że to ich długość w bajty , co może nie być bezpośrednio zrównane postacie . Na przykład 16-bitowe znaki Unicode weź po dwóch bajtach.

Entuzjaści komputerów retro i osoby z długimi wspomnieniami będą wiedzieć, że we wczesnych dniach komputerów osobistych, System operacyjny dysku Microsoft , DOS, był bezsensowny i miał limit nazwy pliku ośmiu znaków, a także trzy charakter rozszerzenie .

Musiałeś być bardzo przemyślany, a czasem kreatywny, kiedy nazwałeś pliki. Dla porównania, wolność, którą mamy dzisiaj, oznacza, że możemy nazwać pliki, co chcemy, nie myśląc o czymkolwiek innym niż opis, który tworzymy dla tego pliku.

Ale dzięki nazwom plików, co najczęściej nas wyprowadza, to nie postacie, które pisamy, to przestrzenie między nimi.

Dlaczego przestrzenie w nazwach plików Linux są ból

Skorupy takie jak Bash będą interpretować rozdzielony przestrzeń ciąg słów jako indywidualne argumenty poleceń, a nie jeden argument. Oto przykład, używając dotykać Do Utwórz nowy plik nazywany „My New File.txt”.

Jak możemy zobaczyć, LS Pokazuje nam, że utworzone są trzy pliki, jeden o nazwie „My”, inny o nazwie „nowy”, a jeszcze jeden o nazwie „File.txt”.

Zwróć uwagę dotykać Nie narzekałem ani nie wrzucił błędu. Wykonuje to, co według nas prosimy. Więc cicho zwraca nas do wiersza poleceń. Jeśli nie jesteśmy zmotywowani do sprawdzenia, nie będziemy wiedzieć, że rzeczy nie minęły zgodnie z planem.

Aby utworzyć żądany plik, musimy zacytować lub uciec.

Jak cytować i uciec od przestrzeni

Jeśli zacytujemy całą nazwę pliku, dotykać wie, że musi traktować cytowany tekst jako pojedynczy argument.

Tym razem otrzymujemy pojedynczy plik, którego oczekujemy.

Możemy uzyskać ten sam wynik, jeśli użyjemy postaci backslash „ \ „Aby uciec od przestrzeni. „Uciekając” przestrzenie, które nie są traktowani jako postacie specjalne - to znaczy separatory argumentów - są uważane za zwykłe stare przestrzenie.

Działa to, ale uciekające przestrzenie sprawia, że pisanie nazwy plików wolniejsze i podatne na błędy. Rzeczy mogą być naprawdę brzydkie, jeśli masz w nich nazwy katalogów z przestrzeniami.

To polecenie kopiuje pojedynczy plik tekstowy z katalogu o nazwie „Dir One” do katalogu o nazwie „Dir Two” i zapisuje kopię jako plik bak. I to dość prosty przykład.

Jak rozwiązać problem przestrzeni u jego źródła

Jeśli są to twoje własne pliki, możesz podjąć decyzję o zasadach, aby nigdy nie korzystać z przestrzeni i utworzyć (lub Zmiana nazwy masowej ) Takie nazwy plików.

Trzeba przyznać, że jest to solidne rozwiązanie, ale wciąż jest brzydkie. Istnieją lepsze opcje, takie jak korzystanie z dystansów ” - ”Lub podkreśla„ _ „Oddzielić twoje słowa.

Oba będą ominąć problem i są czytelne. Jeśli nie chcesz dodawać dodatkowych znaków do swoich nazw plików, możesz użyć Camelcase Aby Twoje nazwy plików były czytelne, tak:

Rozszerzenie zakładki ułatwia przestrzenie

Oczywiście przyjęcie konwencji nazewnictwa i trzymanie się jej pomoże tylko wtedy, gdy masz do czynienia z własnymi plikami. Pliki, które pochodzą z dowolnego miejsca, raczej nie będą przestrzegać przyjętych konwencji nazewnictwa.

Możesz użyć rozszerzenia TAB, aby pomóc Ci dokładnie „wypełnić” nazwy plików dla nas. Powiedzmy, że chcemy usuwać plik bak, który stworzyliśmy w „Dir Two”, używając Rm .

Zaczynamy od wpisania „RM Dir”, ponieważ używamy Rm Polecenie i wiemy, że nazwa katalogu zaczyna się od „Dir”.

Naciśnięcie klawisza „Tab” powoduje skanowanie BASH w poszukiwaniu dopasowań w bieżącym katalogu.

Istnieją dwa katalogi, które zaczynają się od „Dir”, aw obu przypadkach następna postać jest przestrzeń. Więc Bash dodaje postać odwrotnego „ \ ”I przestrzeń. Bash czeka, aż zapewnimy następną postać. Potrzebuje następnego znaku, aby rozróżnić dwa możliwe dopasowania w tym katalogu.

Wpiszymy „T” dla „dwóch”, a następnie naciśniemy „Tab”.

Bash uzupełnia dla nas nazwę katalogu i czeka, aż wpiszmy początek nazwy pliku.

W tym katalogu mamy tylko jeden plik, więc wpisanie pierwszej litery nazwy pliku „M” wystarczy, aby Bash znać, z którego pliku chcemy użyć. Wpisywanie „M” i naciśnięcie „Tab” uzupełnia dla nas nazwę pliku, a „Enter” wykonuje całe polecenie.

Rozszerzenie TAB ułatwia upewnienie się, że masz odpowiednie nazwy plików, a także przyspiesza nawigację i pisanie na linii poleceń w ogóle.

POWIĄZANY: Użyj wypełnienia TAB, aby szybciej wpisać polecenia w dowolnym systemie operacyjnym

Jak używać nazw plików z przestrzeniami w skryptach bash

Nic dziwnego Skrypty Mają dokładnie takie same problemy z przestrzeniami w nazwach plików, jak wiersz poleceń. Jeśli przekazujesz nazwę pliku jako zmienną, upewnij się, że zacytujesz nazwę zmiennej.

Ten mały skrypt sprawdza bieżący katalog plików, które pasują do wzoru pliku „*.txt” i przechowuje je w zmiennej o nazwie FILE_LIST . A Do pętla służy do wykonania prostej akcji na każdym z nich.

Skopiuj ten tekst do edytora i zapisz go do pliku o nazwie „Files.sh”. Następnie użyj . Chmod Komenda Aby uczynić go wykonywaniem.

W tym katalogu mamy kilka plików. Jeden ma prostą nazwę pliku, a pozostałe dwa używają podkreślenia „ _ ”Lub kaseta„ - ”Zamiast przestrzeni. To właśnie widzimy, gdy uruchamiamy skrypt.

To wydaje się ładnie działać. Ale zmieńmy pliki w katalogu dla plików zawierających przestrzenie w ich nazwach.

Każde słowo w każdej nazwie pliku jest obsługiwane tak, jakby było to sama nazwa pliku, więc skrypt się nie powiedzie. Ale wszystko, co musimy zrobić, aby skrypt obsługiwał przestrzenie w nazwach plików $ plik zmienna wewnątrz Do pętla.

Zauważ, że dolara podpisuje „ $ ”Jest w cytatach. Wprowadziliśmy tę zmianę i zapisaliśmy ją w pliku skryptu „Files.sh”. Tym razem nazwy plików są obsługiwane poprawnie.

POWIĄZANY: Jak przetwarzać linię pliku po linii w skrypcie Bash Linux

Rozmieszczone, ale nie łuszczące się

Unikanie przestrzeni we własnych nazwach plików zabierze Cię tylko do tej pory. Jest nieuniknione, że napotkasz pliki z innych źródeł z nazwami zawierającymi przestrzenie. Na szczęście, jeśli chcesz obsłużyć te pliki w wierszu poleceń lub w skryptach, istnieją łatwe sposoby na to.


Dystrybucja - Najpopularniejsze artykuły

Docker dla początkujących: Wszystko, co musisz wiedzieć

Dystrybucja Jun 15, 2025

Doker Tworzy zapakowane aplikacje nazywane pojemnikami. Każdy kontener zapewnia na białym tle środowisko podobne do maszyna wirtualna (VM). W przeciwieńs..


Co nowego w Debianie 11 „Bullseye”

Dystrybucja Jul 22, 2025

Debian , Propogenitor wielu innych dystrybucji Linuksa, wydano 11 dostępnych w etapie testowym. Czy ważysz cnoty uaktualnienia, czy jesteś po prostu ciekawy zmian? Dziś spoj..


5 specjalistyczne Dystrybucje Linux z unikalnych cech

Dystrybucja Jul 20, 2025

Odczyt przez kreskówną długą listę istniejących dystrybucji Linuksa, seryjnych smaków i off-shoots of off-shoots All zaczynają rozmyć razem. Aby zaradzić, że zebraliśmy kilka d..


Jak odwrócić jądro w Linuksie

Dystrybucja Sep 30, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com Jeśli Twój komputer Linux nagle ma problemy po aktualizacji do systemu, możliwe jest Linux Kernel. ..


Jak pobrać i zainstalować parę na Linuksie

Dystrybucja Oct 9, 2025

Postmodern Studio / Shutterstock.com Więc chcesz wypróbować gier Linux. ? W tym artykule spójrzmy, jak zainstalować parę na dowolnym dystrybuc..


Czy możesz zainstalować Linuksa na M1 Apple Silicon Mac?

Dystrybucja Nov 12, 2024

Nie wszyscy kupuje komputer Mac wyłącznie prowadzić MacOS. Zła wiadomość jest taka, że ​​od 2021 listopada 2021 r. Natywne wsparcie Linuksa na Apple Silicon nie jest jeszcze m..


Jak zabić proces Linux według numeru portu

Dystrybucja Oct 4, 2025

Aby zabić proces Linux, potrzebujesz jego identyfikatora lub nazwy. Jeśli wszystko, co wiesz, to port, którego używa, czy nadal możesz go zabić? Tak, na kilka różnych sposobów. P..


Jak znaleźć PID procesu Linux z PIDOF lub PGREP

Dystrybucja Nov 15, 2024

Praca z procesem Linuksa często oznacza znajomość jego identyfikatora procesu lub PID. Jest to unikalny numer podany każdemu elementowi działającego oprogramowania. Oto dwa sposoby, aby d..


Kategorie