[bash-frage] Re: alle nicht-debian files auflisten
On 14/08/2004 Sven Bergner wrote:
> On Sat, Aug 14, 2004 at 03:07:00AM +0200, Jonas Meurer wrote:
> > allerdings schließt das von maintainer scripts installierte dateien
> > (manche konfigurations dateien, oder auch andere) aus, listet sie also
> > auch, da sie nicht in /var/lib/dpkg/info/*.list auftauchen.
> >
> > irgendwelche ideen, wie ich das problem angehen könnte, auch solche
> > dateien rauszufiltern?
>
> Ich würde diese Dateien nicht ausfiltern, da sie eventuell von Dir
> geänderte Konfigurationen enthält. Also durchaus Dinge, die ich mir
> nicht alle merken möchte.
> Ausserdem dürften das doch alles reine Textdateien sein, die sich
> zudem auch noch extrem gut komprimieren lassen.
naja, leider sind das doch auch sehr viele dateien, die nicht wirklich
relevant sind (für backups), und dennoch viel platz wegnehmen.
zum beispiel /etc/gconf/, /var/lib/dpkg, /var/cache/debconf, ...
prinzipiell hast du allerdings recht, ich sollte nicht alle diese
dateien ausschließen. lieber erweitere ich mein script, einige
konfigurierte verzeichnisse, dateien auszulassen.
aber dabei habe ich folgendes problem:
bisher listet mein script nur dateien, das heißt, wenn zum beispiel
/etc/mozilla komplett nicht von debian packeten installiert wurde,
so wird jede datei einzeln in /tmp/new-files angezeigt:
| cat /var/lib/dpkg/info/*.list | while read f; do
| [ -f "$f" ] && echo "$f" ;
| done | sort >/tmp/debian-files
listet alle von debs installierten dateien nach /tmp/debian-files
ich könnte also mit
| cat /var/lib/dpkg/info/*.list | while read f; do
| [ -f "$f" ] && echo "$f" > /tmp/tmp-files ;
| [ -d "$f" ] && echo "$d" > /tmp/tmp-dirs ;
| done
| cat /tmp/tmp-files | sort > /tmp/debian-files
| cat /tmp/tmp-dirs | sort > /tmp/debian-dirs
zusätzlich noch alle debian direcories auflisten, das gleiche mit system
dirs machen:
| mount | awk '! /type (proc|sysfs|devpts|usbfs|binfmt_misc)/ { print $3 }' | \
| xargs -i'#' find '#' -xdev -type f -o -type l | \
| grep -v "^/dev" | grep -v "^/.dev" | sort > /tmp/system-files
| mount | awk '! /type (proc|sysfs|devpts|usbfs|binfmt_misc)/ { print $3 }' | \
| xargs -i'#' find '#' -xdev -type d | \
| grep -v "^/dev" | grep -v "^/.dev" | sort > /tmp/system-dirs
new-dirs genauso wie new-files erstellen:
| sort -m /tmp/system-files /tmp/debian-files | uniq -u >/tmp/new-files
| sort -m /tmp/system-dirs /tmp/debian-dirs | uniq -u >/tmp/new-dirs
und schlussendlich alle new-dirs aus den new-files raus-greppen:
| cat /tmp/new-dirs | while read dir; do
| cat /tmp/new-files | grep -v $dir > /tmp/new-files
| done
wie mir wohl einige zustimmen werden, ist das allerdings eine sehr
komplizierte und verworrene lösung. hat jemand eine idee, wie ich das
besser lösen könnte?
bye
jonas
Reply to: