执行命令时apt (install|remove|update)
,第一行始终是(Reading database ... 266505 files and directories currently installed.)
我很好奇,到底是哪个命令导致了这种计数?到目前为止,我所做的尝试是:
cnt=0;for pkg in $(apt list --installed | tail -n +4 | cut -d '/' -f 1);do cnt=$(($cnt+$(dpkg --listfiles $pkg | wc -l)-1));done
find /usr/ \( -type f -or -type d \) | wc -l
当然,通过改变路径到/usr
和/etc
,仅/
,等等。
没有任何计数与此相符。所以我的问题是:
- 这个计数是如何进行的?
- 这个计数存储在某个地方吗?例如
/var/cache/apt-xapian-inedx/
-- 迈克
答案1
我能得到的最接近的结果是使用:
cat /var/lib/dpkg/info/*.list | sort | uniq | wc -l
已安装软件包的信息位于:/var/lib/dpkg/info/
。每个软件包都有一个pkg-name.list
文件,其中包含该软件包中的文件列表。我们可以计算它们的行号。