명령의 출력을로 리디렉션 할 수 cd
있습니까? 예를 들어, 사용하여 디렉토리를 검색 locate
하고 경로를 얻었습니다. 이제 cd
경로 를 작성하는 대신 locate
출력을 cd
?
나는 이것을 시도했다 :
$ 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
$
불운. 이것은 특히 유용하지는 않지만 궁금합니다.
답변
리디렉션이 아닌 명령 대체를 원합니다.
cd "$(locate Descargas | grep -F 'Descargas$')"
$(
와 사이의 비트 )
는 명령으로 실행되고 출력 (최종 줄 바꿈이 잘림)은 전체 명령으로 대체됩니다.
이것은 ‘back ticks'(“`”)로도 가능합니다 :
cd "`locate Descargas | grep -F 'Descargas$'`"
달러가 많은 구문은 일반적으로 중첩 된 상황에서 처리하기 쉽기 때문에 선호됩니다.
# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"