Que comando lista os arquivos criados em um mês específico e legível para o proprietário?

1

Eu devo encontrar o comando que lista todos os arquivos que são criados em setembro e legíveis para o proprietário. Explique também como o comando funciona.

Eu sei que devo usar

ls -l

e eu vou usar | em algum lugar, mas não tenho certeza do que vem antes do pipe e depois.

    
por tinlyx 13.09.2012 / 16:35

3 respostas

0

Para o período, você pode usar um truque. Primeiro crie dois arquivos fictícios com um toque como este:

touch -t 201209010000 /tmp/1sept
touch -t 201209302359 /tmp/30sept

Como você pode verificar, agora eles têm as datas de criação desejadas:

$ ls -l 1sept 30sept 
-rw-rw-r-- 1 topr topr 0 Sep  1 00:00 1sept
-rw-rw-r-- 1 topr topr 0 Sep 30  2012 30sept

Agora você está pronto para o comando final:

find /thepath/you/like -type f -newer /tmp/1sept -and ! -newer /tmp/30sept -exec stat -c '%A %n' {} \; | grep '^.r'

Um pouco de explicação:

  • -tipo f procura apenas por arquivos
  • - mais! e -newer usando arquivos fictícios como intervalo de datas do conjunto de modelos que você gosta
  • -exec dispara um comando em todos os arquivos encontrados escritos como {} \;
  • comando stat imprime informações sobre o arquivo,% A significa string de direitos de acesso legível como -rw-rw-r-- e% n imprime o nome do arquivo
  • grep '^ .r' filtra resultados com exceção regular para mostrar apenas as linhas a partir de < anycharacter > r, verifica se o acesso de leitura do proprietário do arquivo é concedido
por 14.09.2012 / 14:35
0

ls -lh deve listar arquivos em formato longo legível por humanos (dependendo do seu shell).

Agora, você deseja grep (que é um programa de filtro) para os que correspondem ao que você está procurando.

Por exemplo, para encontrar todos os arquivos que dizem david e que foram criados em 2011, eu poderia usar:

ls -lh | grep "david" | grep "2011"

(Sim, existem maneiras mais rápidas e fáceis de fazer isso, mas a ideia é ser simplista para o usuário).

No seu caso, você deseja filtrar o primeiro bloco de texto para o bit legível que está sendo definido e a data em setembro. Dê uma olhada na saída de ls -lh e você poderá fazer seu próprio comando grep que funciona.

    
por 13.09.2012 / 23:15
-1

Tente este. Espero que ajude:

ls -la | grep -e "Sep"
    
por 10.05.2018 / 10:12