Wytnij i wklej nazwę pliku ze spacjami do polecenia

1

kiedy piszę lslub locatejako dane wyjściowe, otrzymuję „ a file.txt” (między „a” i „file.txt” jest spacja).

zaznaczam go myszką, a następnie wklejam środkowym przyciskiem.

teraz muszę wstawić \ po „a”, aby „ a file.txt” można było odczytać w poleceniu takim jak „ ls a\ file.txt” teraz, jeśli nazwa pliku to nazwa książki, która ma dużo spacji, modyfikacja nazwy wymaga czasu. czy jest sposób, aby to zrobić szybko?

kirill_igum
źródło

Odpowiedzi:

4

Możesz dołączyć wycenę przed wklejeniem, a następnie zamknąć ją. Więc zacznij komendę

ls "

Następnie wklej swój tekst

ls "a file.txt

Następnie zamknij ofertę i wciśnij Enter

ls "a file.txt"

zamiast

ls a\ file.txt

Nie musisz uciekać z każdego miejsca, jeśli cytujesz ciąg.

Uwaga: Możesz także używać pojedynczych cudzysłowów, co zapobiegnie rozszerzaniu zmiennych, jeśli otrzymasz coś w rodzaju pliku o nazwie $ test

ls '$test'

nie będzie taki sam jak

ls "$test"

W przypadku pustej zmiennej drugi przykład wyświetli bieżący katalog, a nie tylko plik $ test

OldWolf
źródło
Fajnie, nie wiedziałem, że to działa :)
Jin,
0

Odwrotny ukośnik jest używany jako znak ucieczki dla powłoki, aby dosłownie potraktować przestrzeń, która następuje po niej. Spróbuj zastąpić spacje podkreśleniami lub myślnikami.

Jin
źródło
Używam istniejących nazw plików, które otrzymuję z Internetu. mają już znak spacji
kirill_igum
Nie poddawaj się uciskowi pocisku! Używaj nazw czytelnych dla ludzi i odpowiednio je cytuj. Komputery istnieją po to, by służyć ludziom, a nie na odwrót. :-)
Chris Page
0

Niektóre emulatory terminali (np. Mac OS X Terminal) mają polecenie wklejania tekstu w cudzysłów. W Terminalu jest to Edycja> Wklej tekst ucieczki ; wstawia odwrotne ukośniki przed znakami specjalnymi. Twój program terminalowy może mieć podobne polecenie.

Chris Page
źródło