Como obter as informações de tempo dos arquivos após find | comando de palavra-chave grep?

Como obter as informações de tempo dos arquivos após find | comando de palavra-chave grep?

Agora eu sei como usar find | palavra-chave grep para obter o arquivo que desejo.

Mas depois disso, como devo saber o tamanho e as informações de create_time de cada arquivo que encontrei?

Por exemplo, depois de encontrar | tutorial grep, eu consegui isso:

./lab/zengjuchen/tutorial
./lab/zengjuchen/tutorial/tutorial

Como devo ver o tempo e o tamanho da criação?

Responder1

Você começou errado usando finde grepjuntos. findé perfeitamente capaz de filtrar arquivos. Você não precisa grepdisso - na verdade, não é recomendado embaralhar nomes de arquivos como esse.

Em vez disso, faça isso:

find -name '*tutorial*' -exec <some-command> {} \;

Aqui, <some-command>será executado para cada arquivo encontrado, cujo nome substituirá {}. Por exemplo, para obter o tamanho do arquivo:

find -name '*tutorial*' -exec du {} \;

Usar \+em vez de \;fará com que findo comando seja executado em todos os arquivos de uma vez, se o comando fornecido suportar a passagem de mais de um argumento de arquivo. Isso irá acelerar o processo.


Ou você pode até fazer isso com o Bash:

shopt -s globstar
du **/*tutorial*

Aqui, **percorre recursivamente todos os diretórios.


Quanto ao tempo de criação: Tradicionalmente, não é armazenado. Você obterá apenas o último acesso, modificação e horário de mudança de status. Veja mais sobrestat. Sistemas de arquivos como ext4o armazenam a hora de criação como "Hora de Nascimento". Então, stat -c %wfuncionaria para eles. Leia mais sobre este assuntoaqui.

informação relacionada