Para responder à sua pergunta, literalmente, você pode listar arquivos que não vêm de pacotes dessa maneira:
find / -xdev -type f | sort >/tmp/root.files
sort /var/lib/dpkg/info/*.list >/tmp/installed.files
comm -23 /tmp/root.files /tmp/installed.files
Isso incluirá, é claro, todos os arquivos nos diretórios pessoais. Você pode pular alguns diretórios no comando find
adicionando -prune
diretivas (você também precisará adicionar -print
para imprimir o resto, já que a ação -print
é apenas implícita se não houver ação). / p>
find / -xdev -type f -path /home -prune -o -path /var -prune -o -print | sort >/tmp/root.files
Para verificar se um arquivo foi alterado, você pode comparar sua soma de verificação com a de /var/lib/dpkg/info/$PACKAGE.md5sum
. Se você quiser comparar todos os arquivos (o que levará muito tempo):
for p in /var/lib/dpkg/info/*.list; do
diff <(md5sum $(cat $p) | sort) <(sort ${p#.list}.md5sums);
done
Você não deve precisar disso, porque você não deve modificar arquivos que vêm de pacotes. Você não deve adicionar seus próprios arquivos nos diretórios do sistema.
Se você modificar um arquivo de configuração, ele viverá em /etc
; este é o único lugar onde você deve modificar os arquivos do sistema. Instale o pacote etckeeper para acompanhar suas modificações em /etc
. Execute sudo etckeeper init
, e /etc
estará sob controle de versão ( Bazaar por padrão).
Se você instalar o software em todo o sistema, instale-o em /usr/local
. Não toque em nada em /bin
, /sbin
, /lib
(exceto módulos de kernel instalados manualmente se você precisar deles porque você tem hardware incomum) ou /usr
(exceto /usr/local
que é para seu próprio uso ).
Todos os arquivos em seu diretório pessoal foram criados por você (exceto por alguns que foram copiados de /etc/skel
quando você criou sua conta). Não há uma maneira geral de saber quais são os padrões do aplicativo, quais resultam da seleção de opções de configuração e quais registram o estado atual (arquivos abertos, histórico de comandos, etc.).