Pesquisa por extensão de arquivo usando o comando grep em / var / run

0

Eu quero pesquisar arquivos usando o comando grep no diretório /var/run

/var/run armazena os processos em execução no sistema e possui arquivos com extensão pid . Eu quero obter uma lista de todos os arquivos com a extensão pid .

Comando Estou usando sudo grep -nr '*.pid' . (estou executando este comando do diretório /var/run )

Não mostra saída. Estou usando o Ubuntu 14.04 LTS.

    
por Codieroot 07.02.2018 / 07:27

1 resposta

1

TL; DR : grep está errada, use find com opções corretas

Se você stat /var/run , descobrirá rapidamente que /var/run é um link simbólico para /run .

$ stat /var/run
  File: /var/run -> /run
  Size: 4           Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d  Inode: 696874      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-02-07 13:17:01.225178554 +0800
Modify: 2017-12-18 20:44:12.898113636 +0800
Change: 2017-12-18 20:44:12.898113636 +0800

Então, você precisa mesmo do diretório /run . Quanto à busca de arquivos com nome de arquivo específico, você precisa do comando find :

$ find /run -name "*.pid" 
/run/charon.pid
/run/starter.charon.pid
/run/dhclient-wlp2s0.pid

Como alguns arquivos nesse diretório pertencem ao root ou a outros usuários do sistema, talvez seja necessário usar esse comando com sudo .

Como alternativa , você pode usar -L flag para permitir os seguintes links simbólicos e chamar find on /var/run :

$ find -L  /var/run -name "*.pid" 
/var/run/charon.pid
/var/run/starter.charon.pid
/var/run/dhclient-wlp2s0.pid

Por favor, note também que grep é uma ferramenta errada para o trabalho. grep é para pesquisar padrões de texto dentro arquivos de texto, não em seus nomes de arquivos.

Você também mencionou:

/var/run stores the processes running in the system and it has files with pid extension

Isso é realmente incorreto. As informações do processo pertencem em /proc . Os arquivos .pid são simplesmente usados por alguns programas para impedir que várias cópias do mesmo processo sejam executadas (bem, uma das maneiras possíveis de usar esses arquivos). Veja esta postagem stackoverflow para referência, bem como esta resposta altamente votada em unix.se. Embora o diretório pertença ao usuário root, não presuma que seja apenas para aplicativos de inicialização e daemon; os scripts iniciados com permissões de root pelo usuário poderiam gravar no diretório com a mesma facilidade.

    
por 07.02.2018 / 07:32

Tags