Jak przekierować wyjście na CD?


11

Czy można przekierować wyjście polecenia cd? Na przykład szukałem katalogu za pomocą locatei uzyskałem ścieżkę do niego. Teraz, zamiast pisać cdścieżkę, mogę przekierować locatewyjście do cd?

Próbowałem tego:

$ locate Descargas | grep Descargas$
/home/oliver/Descargas
$ locate Descargas | grep Descargas$ | cd
$ locate Descargas | grep Descargas$ > cd
$ locate Descargas | grep Descargas$ < cd
/home/oliver/Descargas
$ 

Brak szczęścia. To chyba nie jest szczególnie przydatne, ale jestem ciekawy.

Odpowiedzi:


16

Chcesz podstawienia polecenia, a nie przekierowania:

cd "$(locate Descargas | grep -F 'Descargas$')"

Bity między $(i )są uruchamiane jako polecenie, a dane wyjściowe (pozbawione jakiejkolwiek końcowej nowej linii) są zastępowane w ogólnym poleceniu.

Można to również zrobić za pomocą „tyknięć” („„ ”):

cd "`locate Descargas | grep -F 'Descargas$'`"

Zazwyczaj preferowana jest składnia dolar-paren, ponieważ łatwiej jest sobie radzić w sytuacjach zagnieżdżonych:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.