Como obter as informações de tempo dos arquivos após localizar | grep keyword command?

0

Agora eu sei usar o find | grep keyword para pegar o arquivo que eu quero.

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

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

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

Como devo ver seu tempo e tamanho de criação?

    
por Zen 28.07.2014 / 12:41

1 resposta

3

Você começou errado usando find e grep juntos. find é perfeitamente capaz de filtrar arquivos. Você não precisa de grep para isso - na verdade, não é recomendável misturar nomes de arquivos como esse.

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á find executar o comando em todos os arquivos de uma vez, se o comando especificado suportar a passagem de mais de um argumento de arquivo. Isso acelerará o processo.

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

shopt -s globstar
du **/*tutorial*

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

Quanto ao tempo de criação: Tradicionalmente, isso não é armazenado. Você só terá o último acesso, modificado e o tempo de alteração de status. Veja mais sobre stat . Sistemas de arquivos, como ext4 , armazenam o horário de criação como "Horário de Nascimento". Então, stat -c %w funcionaria para eles. Leia mais sobre este assunto aqui .

    
por 28.07.2014 / 12:50

Tags