
나는 사용한다avfs쉘 프롬프트에서 아카이브 내부를 편리하게 볼 수 있습니다. 이렇게 하면 아래에 전체 디렉터리 트리 보기가 생성되고 ~/.avfs
(파일이 /path/to/foo
존재하면 로도 표시됨 ~/.avfs/path/to/foo
) 추가로 /path/to/foo
아카이브 파일인 경우 ~/.avfs/path/to/foo#
아카이브 콘텐츠의 최상위 디렉터리 보기인 디렉터리가 생성됩니다.
아카이브 내부를 탐색하고 싶을 때 약간 번거롭다. 계층 ~/.avfs
구조로 전환해야 하고, 아카이브의 완성이 완료되어야 한다.cd
나에게 도움이되지 않습니다해당 아카이브 이름을 입력하고 #
끝에 를 추가합니다.
acd foo.zip
나는 에서 달리고 /path/to/dir
달릴 수 있기를 원합니다 cd ~/.avfs/path/to/dir#
. . acd
어떻게 해야 하나요?
답변1
내 구현은 다음과 같습니다 acd
. 인수가 디렉토리인지 아카이브인지에 관계없이 올바른 작업을 수행합니다. acd
인수가 없는 것은 와 동일합니다 acd .
.
avfs_cd () {
case "$2" in
"$HOME/.avfs/"*) :;;
/*) set -- "$1" "$HOME/.avfs$2";;
*) set -- "$1" "$HOME/.avfs$PWD/$2"
esac
if ! [ -d "$2" ]; then
set -- "$1" "${2}#"
fi
"$1" "$2"
}
alias acd='avfs_cd cd'
alias apushd='avfs_cd pushd'
그리고 내 zsh 완료 기능은 다음과 같습니다.
_acd () {
_dirs
_files -g "*.(7z|rar|tar.bz2|tar.gz|tar.xz|tbz2|tgz|zip)(e\\''REPLY=\${REPLY}\\#'\\')"
}
compdef _acd acd apushd