명령의 출력을 로 리디렉션할 수 있습니까 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
$
불운. 이것은 특별히 유용하지 않을 수도 있지만 궁금합니다.
답변1
리디렉션이 아닌 명령 대체가 필요합니다.
cd "$(locate Descargas | grep -F 'Descargas$')"
$(
와 사이의 비트는 )
명령으로 실행되며 출력(마지막 줄 바꿈 제외)은 전체 명령으로 대체됩니다.
"백틱"("`")을 사용하여 이 작업을 수행할 수도 있습니다.
cd "`locate Descargas | grep -F 'Descargas$'`"
달러 대괄호 구문은 중첩된 경우 처리하기 쉽기 때문에 일반적으로 선호됩니다.
# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"