Janne Pikkarainenの答えを拡張するために、特定のパッケージのchangelog.Debian.gzを読み取るために使用できるエイリアスを次に示します。
alias changelog="xargs -I% -- zless /usr/share/doc/%/changelog.Debian.gz <<<"
次のように使用できます。
changelog PACKAGE
ただし、これは非常にハッキングされたソリューションであり、ほとんどの状況では推奨されないことに注意してください。関数またはスタンドアロンスクリプトは、はるかに優れたソリューションです。
PACKAGEで使用可能なすべての変更ログを読み取る関数を次に示します。
changelog(){
if (( $# != 1 )); then
echo "Usage: ${FUNCNAME[0]} PACKAGE"
return 1
fi
find -L "/usr/share/doc/$1" -type f -name 'changelog*.gz' -exec zless {} \; 2>/dev/null
}
以下は、PACKAGEで使用可能なすべての変更ログのリストを出力し、ユーザーに照会して変更するものを選択する機能です。
changelog(){
if (( $# != 1 )); then
echo "Usage: ${FUNCNAME[0]} PACKAGE"
return 1
fi
local changelog changelogs
readarray -t changelogs < <(find -L "/usr/share/doc/$1" -type f -name 'changelog*.gz' 2>/dev/null)
if (( ${#changelogs[@]} == 0 )); then
return 0
elif (( ${#changelogs[@]} == 1 )); then
zless "${changelogs[0]}"
return $?
fi
select changelog in "${changelogs[@]}" EXIT; do
case $changelog in
'')
echo "ERROR: Invalid selection" >&2
continue
;;
EXIT)
return 0
;;
*)
zless "$changelog"
return $?
;;
esac
done
}
apt-get
インストール済みパッケージの変更を確認するには:apt-get changelog <package>