find /usr/lib -type f -exec dpkg -S {} + 2>&1 >/dev/null | sed -r 's/^[^/]+//'
Vou avisá-lo agora: é lento.
Estou pensando em escrever um script que faça isso:
dpkg -s
em cada arquivo. A ideia é que ao longo do tempo, eu instalei um monte de make install
software e gostaria de obter uma lista de arquivos que sobraram do software instalado manualmente que eu já excluí.
find /usr/lib -type f -exec dpkg -S {} + 2>&1 >/dev/null | sed -r 's/^[^/]+//'
Vou avisá-lo agora: é lento.
Você pode executar o seguinte comando
join -t '' -v1 <(find /usr/lib | sort) \
<(grep -h /usr/lib /var/lib/dpkg/info/*.list | sort -u)
que comparam a lista de arquivos em /usr/lib
com a lista de arquivos presentes em pelo menos um arquivo em /var/lib/dpkg/info/<NAME>.list
(os arquivos usados por dpkg -S
). A opção -v1
informaria os arquivos presentes na primeira lista, mas não na segunda.
Na minha máquina, esta lista de diferenças fornece mais de 5000 resultados, por isso duvido que possa ser de alguma ajuda.
sudo aptitude install cruft
man cruft
sudo addgroup cruft
sudo chmod g+rwx /var/spool/cruft
sudo chown root:cruft
sudo addgroup $USER cruft
cruft -r cruftreport
sudo chown root:root /var/spool/cruft
less cruftreport