In meinem System habe ich Dateien, die zu keinem Paket gehören, sie gehören mir oder stammen aus kompilierten Programmen, mit denen installiert wurde make install
. Wie finde ich alle Dateien, die zu keinem Paket gehören?
quelle
In meinem System habe ich Dateien, die zu keinem Paket gehören, sie gehören mir oder stammen aus kompilierten Programmen, mit denen installiert wurde make install
. Wie finde ich alle Dateien, die zu keinem Paket gehören?
In /var/lib/dpkg/info
befinden sich .list
Textdateien, in denen alle Dateien aufgelistet sind, die in jedem Paket enthalten sind¹, das über den Paketmanager von Debian installiert wurde.
Wenn Sie feststellen, dass alle Dateien im Dateisystem mit keinem Eintrag übereinstimmen, können Sie Folgendes erreichen:
find / -xdev -type f \( -exec grep -xq "{}" /var/lib/dpkg/info/*.list \; -or -print \)
Dies wird natürlich sehr lange dauern, da das gesamte Dateisystem gescannt wird. Wenn Sie unterschiedliche Partitionen für Systemverzeichnisse verwenden (z. B. /usr
oder /var
), geben Sie diese nach der Initiale an /
.
Warnung: Dies schließt keine Dateien ein, die von Paketskripten erstellt wurden. Zum Beispiel:
/etc/hosts.allow
wird nirgendwo aufgelistet, aber es könnte von dem stammen libwrap0
, der es möglicherweise erstellt hat, wenn diese Datei zum Zeitpunkt der Paketinstallation nicht vorhanden war..pyc
Dateien (kompilierte Python-Bibliotheken), .elc
Dateien (kompilierte Emacs Lisp-Bibliotheken) usw.
find: argument list too long
/var/lib/dpkg/info/*.list
- die obige Abfrage müsste nach einem anderen Prinzip neu geschrieben werden.Eine effizientere Version der @ Patrice-Lösung , die eine Shell mit Unterstützung für die Prozessersetzung verwendet (
bash
, AT & Tksh
,zsh
):Wie bei Patrices Lösung wird davon ausgegangen, dass kein Dateipfad Zeilenumbruchzeichen enthält.
quelle
locate
Datenbank schneller als die Ausführungfind
?locate \* | grep -v "^/home/"
- hat auch den Vorteil, in/boot/
und andere Systempartitionen zu schauen .Da Sie Ihre Frage mit
debian
der offensichtlichen Wahl markiert haben, die noch nicht erwähnt wurde, sollten Sie sie verwenden,cruft-ng
wenn Sie keine Flexibilität benötigen odercruft
wenn Sie nicht das gesamte System / locatedb durchsuchen möchten.quelle
Sie können auch die Prozessersetzung &
grep
& verwendenfind
. Beachten Sie, dass dasgrep
zweimal verwendet wird, um nur relevante Pfade zu filtern/var/lib/dpkg/info
, um einige Sekunden zu sparen, wenn Sie nach Dateien in einem bestimmten Verzeichnis suchen.quelle