Jak obsługiwać przekazywanie nazw plików za pomocą spacji w Bash
Linux ma domyślną powłokę Bash (znaną również jako powłoka Bourne'a) do wykonywania poleceń dla systemu. Większość programistów woli bash niż cmd ze względu na elastyczność i potężny interpreter wiersza poleceń, który zapewnia bash. Jednak większość użytkowników nadal będzie mieć problemy podczas próby przechodzenia do nazw plików ze spacjami w bash. Wynika to z faktu, że spacje nie są traktowane tak samo w bash, jak w nazwach plików.
Dlaczego nazwa pliku z odstępami nie jest rozpoznawana przez Bash?
W Bash, jeśli wpiszesz wiele słów bez znaku zmiany znaczenia (\) lub cudzysłowów, wszystkie słowa będą traktowane jako argumenty. Dotyczy to wszystkich operacji, niezależnie od tego, czy zmieniasz katalog za pomocą polecenia „ cd ”, czy próbujesz uzyskać dostęp do plików za pomocą poleceń „ cat ”. Wszystko, co napiszesz po ich użyciu, zostanie uznane za argument. Na przykład:
plik cat name.txt
Uwaga : Twoja nazwa pliku może być dowolna, ale w tym artykule użyjemy „ file name.txt ” jako przykładu.
W tym przypadku polecenie „ cat ” uzna plik i nazwę za dwa argumenty, a nie za jeden argument. Jeśli jednak użyjesz znaku ucieczki lub cudzysłowu, powłoka bash potraktuje to jako pojedynczy argument, którym będzie „ file name.txt ”.
Nazwa pliku ze spacjami w Bash
Istnieje kilka metod, które można zastosować dla spacji w nazwie. Najlepszą praktyką jest unikanie spacji dla nazw plików w przyszłości. Prostą metodą będzie zmiana nazwy pliku, do którego próbujesz uzyskać dostęp, i usunięcie spacji. Niektóre inne metody używają pojedynczych lub podwójnych cudzysłowów w nazwie pliku ze spacjami lub używają znaku ucieczki (\) tuż przed spacją. Będziemy dostarczać metody z zastosowanymi przykładami, aby pokazać, jak to działa.
Metoda 1: Korzystanie z pojedynczego i podwójnego cudzysłowu
- Przytrzymaj Ctrl + Alt i naciśnij T, aby otworzyć Terminal .
- Teraz przejdź do katalogu, w którym znajduje się plik.
(możesz także przeciągnąć i upuścić plik w terminalu po komendzie „ cat ”, która automatycznie umieści cytaty w ścieżce / katalogu pliku)
cd Desktop
Zmiana katalogu Uwaga : Pulpit można zmienić na lokalizację, do której próbujesz uzyskać dostęp.
- Wpisz następujące polecenie, aby odczytać plik tekstowy ze spacjami w nazwie:
cat „nazwa pliku.txt”
lub
cat „nazwa pliku.txt”
Używanie cytatów, aby uniknąć spacji w nazwie błędu - Pojedyncze i podwójne cytaty spowodują to samo. W niektórych przypadkach musisz wypróbować oba i sprawdzić, który z nich działa.
Metoda 2: Użycie znaku ucieczki luzu
- Przytrzymaj Ctrl + Alt i naciśnij T, aby otworzyć Terminal .
- Zmień katalog, w którym znajduje się plik, używając następującego polecenia.
cd Desktop
Uwaga : umieść nazwę lokalizacji w miejscu pulpitu.
- Teraz wpisz polecenie i użyj znaku zmiany znaczenia w dowolnym miejscu w nazwie:
plik kota \ nazwa.txt
Używanie znaku zmiany znaczenia w celu uniknięcia błędu spacji
Bonus: wykorzystanie ofert i ucieczka
Czasami, gdy używasz katalogu w poleceniu, mogą wystąpić konsekwencje używania cudzysłowów na całej ścieżce. Jest tak, ponieważ niektóre polecenia, takie jak „ mv ” lub „ cp ”, uznają ścieżkę za źródło pliku, jeśli cytat zostanie użyty w całości. Musisz podać oferty dla źródła i miejsca docelowego indywidualnie, aby polecenia takie jak „ cp ” mogły działać poprawnie. Możesz również sprawdzić poniższy przykład, który pokaże, że użycie znaku zmiany znaczenia dla ścieżki jest znacznie bardziej złożone i użytkownicy mogą się z nią pomylić.