/xxxxx/foo/yyyyyy에서 /xxxxx/bar/yyyyyy로 디렉토리를 변경하는 가장 빠른 방법

/xxxxx/foo/yyyyyy에서 /xxxxx/bar/yyyyyy로 디렉토리를 변경하는 가장 빠른 방법

Bash를 사용하여 현재 경로의 특정 부분을 다른 것으로 "대체"하는 가장 쉬운 방법은 무엇입니까? 현재 경로가 이 형식인 경우 가장 짧은 명령을 사용하여 해당 디렉터리로 /xxxxx/foo/yyyyy어떻게 이동할 수 있습니까 ?/xxxxx/bar/baz/yyyyy

답변1

필요한 경우 셸 기능을 활용하여 이 기능을 제공할 수 있습니다.

change() { path=`pwd`; cd `echo $path | sed "s/$1/$2/"`; }

/foo/bar/에서 호출됩니다:

change "bar" "gazi"

이 예에서는 ""가 필요하지 않지만 이름에 공백 문자가 있는 디렉터리와 같은 특수 문자열에는 필요합니다.

답변2

그렇게 짧지는 않지만 효과적입니다.cd ${PWD/foo/bar\/baz}

답변3

cd ../../bar/baz/yyyyy
cd $(echo $PWD | sed 's|foo|bar/baz|')

두 번째는 "더 멋져" 보이지만 첫 번째는 더 짧습니다.

답변4

/xxxxx/foo/yyyyywith로 변경했고 cd /xxxxx/foo/yyyyy이 명령 바로 다음에 다른 디렉토리로 변경하고 싶다고 가정하면 를 사용할 수 있습니다 !!:s/foo/bar\/baz/. 즉, 마지막 명령을 반복하고 foo로 바꾸십시오 bar/baz.

cd이는 두 s 사이에서 일부 명령을 실행할 때 사용할 수 있습니다 !cd:s/foo/bar\/baz/. 즉, 이전 cd명령을 반복하고 교체합니다.

더 많은 예제와 기록 명령을 보려면 다음을 확인하세요.배쉬 참조 매뉴얼.

관련 정보