하위 디렉터리에 있는 경우 경로에 추가

하위 디렉터리에 있는 경우 경로에 추가

작업 디렉터리가 파일 디렉터리이거나 해당 하위 디렉터리 중 하나인 경우 경로에 파일을 어떻게 추가할 수 있나요? 그래서 내가 안에 있거나 /foo밖에 있을 때 /foo/bar/나는 /foo/foo.foo길을 갈 것이지만 /foo나무 위에 있다면 나는 그것을 가질 수 없을 것입니다.

답변1

나는 이것을 달성하기 위한 기본 제공 방법을 모르지만 깔끔한 트릭을 수행할 수 있습니다.유닉스 전동 공구(2판 항목 14.14). 을 사용하는 경우 bash다음과 같은 함수를 정의하십시오.

cd() {
    builtin cd "$1"
    PATH="$(echo $PATH | sed sX/foo/foo.foo:XXg)"
    if [ "${PWD:0:4}" = "/foo" ]; then
        export PATH="/foo/foo.foo:$PATH"
    fi
}

${PATH//}( 우리가 검색하는 텍스트에 가 포함되어 있기 때문에 변형을 사용하여 교체를 수행하는 것이 가능하지 않다고 생각합니다 /.)

이는 어딘가에 도착할 때마다 cd요청된 변경 사항을 수행 한 다음 /foo/foo.foo경로에서 제거하고 마지막으로 새 현재 디렉터리가 있는지 확인하고, 있으면 /foo경로 앞에 추가합니다. 경로에서 먼저 제거하면 추가하기 전에 이미 존재하는지 확인하지 않아도 됩니다./foo/foo.foo/foo/foo.foo

pushd이 작업을 수행하려면 다음을 다시 정의 해야 합니다 popd.

관련 정보