私は使うAVFSシェルプロンプトでアーカイブの内部を便利に見ることができます。これにより、下に完全なディレクトリツリービューが作成され~/.avfs
(ファイルが/path/to/foo
存在する場合でも表示されます)、さらにアーカイブファイルの~/.avfs/path/to/foo
場合、アーカイブコンテンツの最上位ディレクトリビューが作成されます。/path/to/foo
~/.avfs/path/to/foo#
アーカイブ内を閲覧したいときは少し面倒です。階層に切り替える必要があり~/.avfs
、cd
私には役に立たないこれらのアーカイブ名を入力し、#
最後に1つを追加します。
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