삭제된 폴더를 CD로 꺼내세요

삭제된 폴더를 CD로 꺼내세요

cd방금 삭제된 디렉터리(아직 존재하는 상위 폴더의 한 수준 위)를 종료할 수 있는 방법이 있습니까 ?

폴더에 대한 콘솔을 연 다음 임시 테스트 데이터가 포함된 폴더를 삭제하고 다른 폴더를 만드는 상황이 자주 발생합니다.

그러나 삭제된 폴더를 유지하려고 하면 둘 다 cd ..상위 cd $(pwd)/..디렉토리가 아닌 휴지통에 들어가게 됩니다.

따라서 현재 상황은 다음과 같습니다.

$ mkdir -p /home/me/test/p1
$ cd /home/me/test/p1

이제 p1 폴더를 삭제하겠습니다.

$ cd ..
me:~/.local/share/Trash/files$ ...

나는 이제 /home/me/test/쓰레기통에 들어가는 대신 들어갈 방법을 찾고 있습니다. 그런 명령이 있나요?

답변1

PWD 변수는 현재 경로 정의를 보유합니다.

업그레이드

cd $(dirname $PWD)

으로 확장될 예정입니다.

cd $(dirname /home/me/foo/bar/baz/deleteddirectory)

누가 연장해?

cd /home/me/foo/bar/baz/

이는 한 수준의 디렉터리만 삭제한다고 가정합니다.

답변2

쉘은 현재 작업 디렉토리에 대한 경로를 변수에 저장합니다 PWD. 달리 구성하지 않는 한, 디렉토리가 이동되거나 기호 링크가 포함된 경우에도 이는 쉘에 대해 지정된 경로입니다. 따라서 디렉터리의 실제 위치가 다른 경우에도 이를 사용하여 디렉터리의 명백한 상위 디렉터리를 변경할 수 있습니다. 예를 들어, 기호 링크의 경우에도 이는 (셸이 기호 링크를 확인하도록 함)로 cd /foo/bar설정되고 PWD이후에 디렉토리가 이동되거나 삭제되더라도 설정된 상태로 유지됩니다./foo/barbarcd -PPWD

PWD따라서 마지막 슬래시 뒤의 부분을 가져와서 제거하여 확실한 상위 디렉토리로 변경할 수 있습니다.

cd ${PWD%/*}

디렉터리 경로에 공백이나 와일드카드가 있는 경우 따옴표가 필요합니다.

cd "${PWD%/*}"

zsh에서는 다음과 같이 축약할 수 있습니다.

cd $PWD:h

더 길지만 기억하기 더 쉬운 단어를 사용할 수도 있습니다.

cd "$(dirname "$PWD")"

(디렉터리 이름에 공백이나 와일드카드가 없으면 큰따옴표가 필요하지 않습니다.)

관련 정보