localiza um arquivo pelo nome completo do arquivo?

1

Quando executo locate syn , ele retornará arquivos com syn em seus nomes de arquivos.

Como posso pesquisar por arquivos com nome completo syn ? A locate --regex syn$ é a maneira correta, enquanto locate --regex ^syn$ não é?

    
por Tim 17.03.2015 / 15:43

1 resposta

2

A opção --regex aplica-se ao caminho inteiro, não apenas ao nome do arquivo. Portanto, locate --regex syn$ corresponderá a todos os arquivos e diretórios cujo caminho, incluindo seu nome, terminará em syn , enquanto locate --regex syn$ corresponderá apenas a um arquivo cujo caminho inteiro seja syn e que tal arquivo não exista:

$ locate --regex ^etc$ ## returns nothing
$ locate --regex ^/etc$
/etc

A opção que você está procurando é -b :

   -b, --basename
          Match  only  the base name against the specified patterns.  This
          is the opposite of --wholename.

Você poderia, portanto, fazer

locate -b --regex ^sys$

Isso listará todos os arquivos e pastas em locatedb cujo nome é exatamente sys .

    
por 17.03.2015 / 15:53

Tags