좋습니다. 간단한 질문입니다. 나는 pushd
명령을 사용하여 목록에 더 많은 작업 디렉터리를 추가할 수 있다는 것을 우연히 알았습니다 . 이는 편리합니다. 하지만 재부팅이나 로그아웃 후에도 유지되도록 이 목록을 영구적으로 만들 수 있는 방법이 있습니까?
답변1
~/.bashrc
원하는 경우 파일에 디렉터리 스택을 미리 채울 수 있습니다.
for dir in "$HOME/dir" /usr/src /usr/local/lib; do
pushd -n "$dir" >/dev/null
end
또는 디렉토리를 배열에 넣고 거기에서 사용하려면 다음을 수행하십시오.
dirstack=( "$HOME/dir"
/usr/src
/usr/local/lib )
for dir in "${dirstack[@]}"; do
pushd -n "$dir" >/dev/null
end
unset dirstack
를 사용하면 -n
실제로 pushd
작업 디렉터리가 변경되지 않고 지정된 디렉터리가 스택에 추가될 뿐입니다.
원하는 경우 배열의 값 DIRSTACK
(여기서는 변수 이름을 대문자로 지정)을 저장할 수 있습니다.현재의디렉터리 스택을 파일에 넣은 다음 미리 정의된 배열을 사용하는 대신 ~/.bash_logout
해당 파일을 읽습니다 .~/.bashrc
존재하다 ~/.bash_logout
:
declare -p DIRSTACK >"$HOME/.dirstack"
존재하다 ~/.bashrc
:
if [ -f "$HOME/.dirstack" ]; then
source "$HOME/.dirstack"
fi
여러 터미널을 사용하는 경우 이것이 얼마나 잘 작동하는지 모르겠습니다. .dirstack
터미널이 bash
로그인 셸로 실행되는 경우 종료할 때마다 이 파일을 덮어씁니다.