작업 디렉터리가 파일 디렉터리이거나 해당 하위 디렉터리 중 하나인 경우 경로에 파일을 어떻게 추가할 수 있나요? 그래서 내가 안에 있거나 /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
.