如何获取我的计算机上不属于任何包的文件列表?

如何获取我的计算机上不属于任何包的文件列表?

我正在考虑编写一个执行此操作的脚本:

  • 浏览 /usr/lib 中的每个文件
  • dpkg -s对每个文件进行搜索。
  • 报告不属于任何 .deb 包的“孤立”文件列表。

我的想法是,随着时间的推移,我安装了很多make install软件,我想获取我后来删除的手动安装的软件的剩余文件列表。

答案1

find /usr/lib -type f -exec dpkg -S {} + 2>&1 >/dev/null | sed -r 's/^[^/]+//'

我现在警告你:它很慢。

答案2

您可以运行以下命令

join -t '' -v1 <(find /usr/lib | sort) \
               <(grep -h /usr/lib /var/lib/dpkg/info/*.list | sort -u)

/usr/lib将 中的文件列表与 中存在的至少一个文件/var/lib/dpkg/info/<NAME>.list( 所用文件)中的文件列表进行比较dpkg -S。该-v1选项将报告第一个列表中存在但不在第二个列表中的文件。

在我的计算机上,这个差异列表给出了超过 5000 个结果,所以我怀疑它是否有任何帮助。

答案3

sudo aptitude install cruft
man cruft
sudo addgroup cruft
sudo chmod g+rwx /var/spool/cruft
sudo chown root:cruft /var/spool/cruft
sudo addgroup $USER cruft
cruft -r cruftreport
sudo chown root:root /var/spool/cruft
less cruftreport

相关内容