mostra uma lista recursiva de arquivos modificados desde o último login

3

Eu estou tentando descobrir como usar o find para mostrar uma lista de todos os arquivos no meu diretório atual e menores que foram modificados desde que minha sessão de terminal atual foi iniciada.

Obviamente, uma busca recursiva deve ser usada, mas como faço para delinear os resultados apenas para mostrar arquivos que foram modificados desde que eu entrei? faço para verificá-los contra algum outro arquivo que é sempre modificado no login? Existe um caminho construído?

diga algo como: find . -newer 'xxxx' em que xxxx é algum arquivo que é modificado no início de uma sessão de terminal. Mas qual arquivo funcionaria para isso?

    
por DanMan3395 28.06.2018 / 03:26

2 respostas

2

Não há um arquivo específico que você possa usar para isso, mas é fácil adicionar o seu próprio arquivo.

Em seu .profile ou .bash_profile ou qualquer coisa que você possa fazer algo como

TIMEFILE=$HOME/.lastlogin
[[ ! -f $TIMEFILE ]] && touch $TIMEFILE
find $HOME -newer $TIMEFILE
touch $TIMEFILE

A linha [[ está lá para evitar que find reclame se o arquivo não existir.

Edit: Ah, desculpe, eu posso ter entendido mal sua pergunta. Você pode querer executar o comando a qualquer momento, portanto, neste caso, você poderia ter isso em seu .bash_profile

touch $HOME/.lastlogin

E agora na linha de comando

find $HOME -newer $HOME/.lastlogin

Você pode redefinir o timer a qualquer momento por touch do arquivo novamente.

    
por 28.06.2018 / 04:05
0

No Bash você pode calcular o tempo que passou desde que você efetuou login, com last .

TIMEDIFF=$(( ( $(date --date="$(last -1 | head -n 1 | tr -s " " | cut -d" " -f3-6)" +%s) - $(date +%s) ) / 60 ))

Observe que isso produzirá um número negativo. (Isso é útil para o próximo passo.)

Em seguida, adicione a diferença de horário com o parâmetro -mmin ao comando find :

find . -mmin $TIMEDIFF

É claro que você também pode torná-lo um versículo.

    
por 28.06.2018 / 04:04

Tags