Como encontrar o número do inode usando o comando “find”?

3

Como você encontra o número inode do nome dos arquivos que começam com uma palavra-chave específica, como "teste"?

Vamos supor que existam arquivos chamados: test, test1, test2.

    
por user31466 30.01.2013 / 23:09

2 respostas

7

Tente fazer isso (requer cygwin ou algo parecido):

find . -type f -name 'test*' -printf '%p %i\n'

Veja

man find | less +/'-printf format'

Notas:

  • %p significa caminho do arquivo
  • %i significa número do inode
por 30.01.2013 / 23:12
0

Existem algumas maneiras de fazer isso com o find.

find . -iname 'test*' -type f -exec ls -i {} \;

find : o comando find
. : o diretório para pesquisar% -iname 'test*' : pesquise qualquer coisa que corresponda ao teste * independentemente do caso
-type f : procure apenas por arquivos < br> -exec ls -i {} \; : execute ls -i em cada arquivo encontrado

find . -iname 'test*' -type f -printf '%i %f\n'

find : o comando find
. : o diretório para pesquisar% -iname 'test*' : pesquise qualquer coisa que corresponda ao teste * independentemente do caso
-type f : procure apenas por arquivos < br> -printf '%i %f\n' - imprime o inode, depois o nome do arquivo (sem diretórios) e separa cada arquivo por uma nova linha

Notas:

  • Substitua -iname por -name se você quiser diferenciar maiúsculas e minúsculas.
  • Substitua . pelo caminho absoluto se quiser pesquisar algo diferente do diretório de trabalho atual.
  • Substitua %f por %p pelo nome do arquivo, incluindo o caminho (difere se você usa caminhos relativos ou absolutos em seu comando find).
  • Se você quiser ser seletivo em seus diretórios, não se esqueça dos parâmetros -prune e -depth
  • Você pode ser mais específico com sua string e fazer algo como 'test[0-9]' para encontrar tudo test0-test9 ou 'test[0-9]*' para qualquer coisa com a string "test", depois um dígito, qualquer coisa depois disso.
por 31.01.2013 / 14:41

Tags