출력을 CD로 리디렉션하는 방법은 무엇입니까?

출력을 CD로 리디렉션하는 방법은 무엇입니까?

명령의 출력을 로 리디렉션할 수 있습니까 cd? 예를 들어 검색 디렉터리를 사용하여 locate해당 경로를 가져옵니다. 이제 출력을 로 리디렉션 cd할 수 있나요 ?locatecd

나는 이것을 시도했습니다 :

$ 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
$ 

불운. 이것은 특별히 유용하지 않을 수도 있지만 궁금합니다.

답변1

리디렉션이 아닌 명령 대체가 필요합니다.

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

$(와 사이의 비트는 )명령으로 실행되며 출력(마지막 줄 바꿈 제외)은 전체 명령으로 대체됩니다.

"백틱"("`")을 사용하여 이 작업을 수행할 수도 있습니다.

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

달러 대괄호 구문은 중첩된 경우 처리하기 쉽기 때문에 일반적으로 선호됩니다.

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"

관련 정보