Pagina 1 di 1

File non appartenenti ai pacchetti...

Inviato: gio 16 nov 2006, 16:08
da gianogli
Esiste un comando da dare per visualizzare i file presenti sull'HD (o in una directory) ma non presenti in nessun pacchetto tgz installato con installpkg?

In pratica vorrei trovare tutti i file creati in un secondo tempo o i file appartenenti ai pacchetti che avevo installato con make install tempo fa...

E' possibile?
Grazie mille...

GiAn

Inviato: gio 16 nov 2006, 18:36
da albatros
Credo che find possa fare al caso tuo...

Inviato: gio 16 nov 2006, 20:29
da dapuzz
Ci sarebbe un bello scriptino da pensare...
In ogni caso spesso di default i programmi installati con il make install vanno in /usr/local in cui nessun pacchetto (ufficiale o di slacky) mette piede. Bene o male puoi vedere da lì cosa hai installato a mano.

Inviato: gio 16 nov 2006, 20:32
da gianogli
albatros ha scritto:Credo che find possa fare al caso tuo...
In che senso?
Come faccio a drigli di cercare ad esempio su / (escludendo /home e /tmp) tutti i file che non appartengo ai pacchetti tgz installati?
Ho dato un'occhiata al man ma non ho trovato nulla in proposito...
Grazie mille...
GiAn

Inviato: gio 16 nov 2006, 21:39
da bloodlust
gianogli ha scritto:
albatros ha scritto:Credo che find possa fare al caso tuo...
In che senso?
Come faccio a drigli di cercare ad esempio su / (escludendo /home e /tmp) tutti i file che non appartengo ai pacchetti tgz installati?
Ho dato un'occhiata al man ma non ho trovato nulla in proposito...
Grazie mille...
GiAn
ricordati che in /var/log/packages hai i log di tutti i pacchetti installati nei quali trovi l'elenco dei file (ricordati di saltare l'header, fino alla riga "FILE LIST:" compresa,quando fai il parsing).
Dai un occhio alla man page di grep ti servirà ;)

Inviato: gio 16 nov 2006, 21:44
da absinthe

Codice: Seleziona tutto

#definisco il percorso ed il nome del file di log
LOGDIR=/percorso_assoluto_a_piacere
LOGFILE=nome_file_di_log

#memorizzo la dir. attuale ed entro in /
cwd=$(pwd)
cd /
touch $LOGDIR/$LOGFILE

#memorizzo l'elenco di tutti i file del pc con tempi di attesa sovraumani...
#escludo la /home (non mi ricordo ma credo si possa fare anche soltanto con find)
FILELIST=$(find . | grep -v "\/home\/")

for FILE in $FILELIST; do
#per ogni file dell'hd valuto se esiste il nome nel database dei file installati
    grep ${FILE:1} /var/log/packages/*
   #se non è presente lo loggo
    [ ! $? -eq 0 ] && echo $FILE >> $LOGDIR/$LOGFILE 
done

#rientro nella directory di inizio attività
cd $cwd
fatto da win in troppo poco tempo. ci saranno sicuramente bachi e imprecisioni. ma la base è quella!

M

PS: l'algoritmo -bachi a parte- non è perfetto per5chè non valuta le operazioni di postinstall