Comando Find associado ao arquivo de configuração

2

Digamos que eu não saiba para que ~/.bashrc é. Existe um comando que me diga o que o arquivo é / faz? Além de pesquisar por uma resposta. As páginas man têm uma seção de arquivos, talvez haja uma maneira de dizer ao homem: me dê a man page para o comando que tem este arquivo em sua seção MANS FILES. Existe algo assim?

    
por spelufo 14.12.2014 / 10:39

3 respostas

1

Se você tiver um gerenciador de pacotes, poderá consultar qual pacote possui um determinado arquivo.

No Arch Linux, você pode usar

pacman -Qo FILENAME

No Ubuntu, Debian e outras distribuições com o apt, você pode usar

apt-file FILENAME

Para pesquisar arquivos man, você pode usar zgrep

cd /usr/share/man
find -name *.gz | \        # List all *.gz files
while read line; do        # For each file:
  zgrep bashrc "$line" &&  # call zgrep with pattern and filename
  echo "--- $line ---";    # print filename if zgrep found something (&&)
done                       # 
    
por 14.12.2014 / 12:55
1

O Google é geralmente o caminho mais rápido. No entanto, se você quiser procurar páginas man, você pode usar o seguinte para listar ( -w ) todas as páginas man de comandos do usuário (seção 1) contendo o texto .bashrc em qualquer lugar:

man -w -s 1 -K .bashrc

Para um arquivo como .bashrc , isso resultará em alguns falsos positivos na forma de man pages que sugiram adicionar um alias ou outra configuração a .bashrc . Este comando é para a implementação man-db do man, que é popular no Linux. Existem outras implementações de homem que não têm uma opção para pesquisa de texto completo; você pode usar grep depois de descobrir onde as páginas man estão localizadas, por exemplo

grep -F .bashrc /usr/man/man1/*.1

Se você quiser descobrir qual programa acessa esse arquivo de configuração, você pode configurar um sistema de monitoramento. Você pode usar LoggedFS para monitorar todos os acessos em uma árvore de diretórios. É muito provável que o monitoramento de todo o seu diretório home seja extremamente detalhado, e o LoggedFS só pode monitorar uma árvore de diretórios, não um arquivo regular sozinho, para monitorar um arquivo específico, movê-lo para um diretório próprio e criar um link simbólico. / p>

mkdir ~/monitored
mv ~/.bashrc ~/monitored
ln -s monitored/.bashrc ~
loggedfs -l ~/monitored.log ~/monitored

Assista ao arquivo de log para ver quando um processo o acessa. Por padrão, o nome do processo é incluído no log.

    
por 14.12.2014 / 23:18
0

Eu recomendo a resposta do @akrafs, mas se isso não for detalhado o suficiente; você pode configurar o auditd para registrar qual arquivo acessou o arquivo de configuração.

Mais detalhes em: link

    
por 14.12.2014 / 16:11