Re: [Debian]: Paketleichen finden
On Thu, Jan 07, 1999 at 09:52:57AM +0100, Cord Beermann wrote:
>
> Gibts denn auch ein Skript,
>
> * welches Files die nicht im Packagemanagement sind findet
cruft
> * Files die im Packagemanagement sind, aber nicht auf Platte, anmaekelt
Mmmh. Du tust ja gerade so als bräuchte man dafür ein extra Debian Paket:
=========================== cut ===========================================
#!/bin/sh
#
# check-exist, written by Marcus Brinkmann. I hereby set this shell command
# in the Public Domain. Based on an idea by Cord Beermann.
for p in /var/lib/dpkg/info/*.list
do
for f in `cat $p`
do
if [ ! -e $f ] ; then
echo -n `basename $p:` $f
if [ -L $f ] ; then
echo \ exists but is a broken link.
else
echo \ is missing.
fi
fi
done
done
========================== cut ============================================
(Einfach cut&paste in die Shell, oder in eine Datei speichern und "chmod +x
dateiname")
> * und die *.dpkg-(old|new) meldet?
Geht noch einfacher:
find /etc -name \*dpkg-dist -o -name \*dpkg-old -o -name \*dpkg-new
Oder einfach nur:
find /etc -name \*dpkg-old -o -name \*dpkg-new
Kurze Einführung:
Das erste ist ein Shell Script. Die erste schleife geht durch alle Dateien
/var/lib/dpkg/info/*.list und führt das zwischen do/done aus, setzt jeweils
die envrionment variable $p auf den Dateinamen des pakets.list files.
Dadrin befindet sich eine Schleife, die für jede Zeile in der *.list Datei
ausgeführt wird (`cat` -> cat ausführen, output hier in die Schleife
einbringen), und zwar wird $f (für file) auf diesen Dateinamen, der in
der Zeile steht, ausgeführt.
[ ] sind synonyme fpr den "test" befehl. ("info test" oder "man test" sagt mehr).
-e heißt: existiert die Datei? "!" heißt: Nimm das Gegenteil an.
"basename" gibt nur den Dateinamen zurück, ohne den kompletten Pfad. "echo -n"
heißt: Drucke, aber kein Newline, also kein Zeilenumbruch.
-L prüft, ob das vielleicht ein Link ist, der ins nichts führt (-L prüft nur
auf link, aber wir wissen bereits, die Datei ! -e = existiert nicht).
Das war's schon.
Über den "find" Befehl erfährst Du mehr mit "info find" oder "man find".
Viel Spaß beim Shell Skripten!
Marcus
--
"Rhubarb is no Egyptian god." Debian GNU/Linux finger brinkmd@
Marcus Brinkmann http://www.debian.org master.debian.org
Marcus.Brinkmann@ruhr-uni-bochum.de for public PGP Key
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/ PGP Key ID 36E7CD09
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder: 674
Reply to: