En mi sistema tengo archivos que no pertenecen a ningún paquete, son míos o de programas compilados instalados make install
. ¿Cómo puedo encontrar todos los archivos que no pertenecen a ningún paquete?
fuente
En mi sistema tengo archivos que no pertenecen a ningún paquete, son míos o de programas compilados instalados make install
. ¿Cómo puedo encontrar todos los archivos que no pertenecen a ningún paquete?
En /var/lib/dpkg/info
son .list
archivos de texto que lista todos los archivos contenidos en cada package¹ instalado a través del gestor de paquetes de Debian.
Encontrar todos los archivos en el sistema de archivos que no coincidan con ninguna entrada se puede lograr con algo ingenuo como este:
find / -xdev -type f \( -exec grep -xq "{}" /var/lib/dpkg/info/*.list \; -or -print \)
Obviamente, esto llevará mucho tiempo ya que se escaneará todo el sistema de archivos. Si utiliza diferentes particiones para los directorios del sistema (como /usr
o /var
), especifíquelas después de la inicial /
.
Advertencia: Eso no incluye archivos creados por scripts de paquetes. Por ejemplo:
/etc/hosts.allow
no aparece en ninguna parte, pero podría provenir de lo libwrap0
que posiblemente lo creó, si ese archivo no existía en el momento de la instalación del paquete..pyc
archivos (bibliotecas compiladas de Python), .elc
archivos ( bibliotecas compiladas de Emacs Lisp), etc.
find: argument list too long
/var/lib/dpkg/info/*.list
: la consulta anterior debería reescribirse bajo algún otro principio.Una versión más eficiente de la solución de @ Patrice , utilizando un shell con soporte para la sustitución de procesos (
bash
, AT&Tksh
,zsh
):Al igual que la solución de Patrice, supone que ninguna ruta de archivo contiene caracteres de nueva línea.
fuente
locate
base de datos sería más rápido que ejecutarlofind
?locate \* | grep -v "^/home/"
- también tiene la ventaja de buscar/boot/
y otras particiones del sistema.Dado que etiquetó, su pregunta con
debian
la opción obvia que no se ha mencionado aún es usarlacruft-ng
si no requiere flexibilidad ocruft
si no desea buscar en todo el sistema / ubicaciónb.fuente
También puede usar la sustitución de procesos &
grep
&find
. Tenga en cuenta quegrep
se usa dos veces para filtrar solo las rutas relevantes/var/lib/dpkg/info
para ahorrar unos segundos si está buscando archivos en un determinado directorio.fuente