Aprenda Linux

Como encontrar recursivamente e listar os arquivos por data no Linux

Como encontrar recursivamente e listar os arquivos por data no Linux

A principal razão pela qual a maioria dos usuários de sistemas operacionais escolhem o Linux em vez de outros sistemas operacionais é a liberdade de explorar. Com o Linux, você está sujeito a algumas regras de sistema operacional fracamente acopladas. O sistema operacional pré-define algumas regras padrão mutáveis ​​para usar em seu ambiente.

Depois de tirar o casaco de iniciante, você pode sair dessas regras padrão e criar o seu próprio. No Linux, o sistema operacional é seu servo leal e você é o mestre.

Este caso não é viável em outras distribuições de sistema operacional, pois há muitas abstrações no local. Os sistemas operacionais aqui são mais do seu assistente. Você nunca pode ter mais poder do que o sistema operacional, como no caso do Linux. Conforme você continua a construir sua experiência de usuário em um ambiente de sistema operacional Linux, sua curiosidade de sistema operacional aumentará diariamente. Você sempre vai querer saber o que está escondido aqui e o que mais você pode fazer sob seu guarda-chuva.

Trabalho com arquivos e diretórios no Linux

Um cenário de caso perfeito é sua interação diária com arquivos e pastas no ambiente do sistema operacional Linux. Há mais no uso do sistema de arquivos Linux OS do que apenas criar, editar, modificar e excluir os sistemas de arquivos e pastas do usuário. Cada ação vinculada aos arquivos e pastas / diretórios do usuário em um ambiente Linux deixa uma pegada ou impressão digital do usuário. É como entrar em uma sala para tocar e trocar itens.

Se um proprietário ou zelador Linux gerenciar esta sala em que você entrou, ele saberá exatamente o que você fez e quais itens você tocou ou trocou. O Linux tem comandos úteis para nos ajudar a alcançar esses resultados. Você saberá o que aconteceu com os arquivos e pastas em seu sistema operacional Linux e identificará essas ações com base em quando elas aconteceram.

Em suma, ao lidar com arquivos e diretórios em um ambiente de sistema operacional Linux, podemos construir uma linha do tempo de eventos para identificar modificações de arquivos vulneráveis ​​por meio de carimbos de data / hora anexados a cada modificação. Como vantagem, você saberá se a modificação foi associada a conteúdo malicioso por meio dos logs de sistema gerados.

Os comandos do Linux a serem usados

Vamos canalizar alguns comandos simples para nos ajudar a entender a implicação objetivada deste artigo. Você primeiro precisa iniciar seu terminal e navegar por um caminho do sistema que você sabe que tem muitos arquivos e diretórios de pastas. Para estar seguro e não brincar com seus arquivos de sistema vulneráveis, você pode usar o diretório “Documentos” que geralmente é predefinido no sistema operacional Linux. O seguinte comando deve levá-lo a este diretório “Documentos”.

$ cd ~ / Documentos

É um diretório popular com muitos arquivos e subdiretórios. Outro diretório a ser usado para este experimento de artigo é o diretório “Downloads”. É um lugar onde você nunca vai perder os arquivos baixados e outros subdiretórios.

$ cd ~ / Downloads

Para iniciar este experimento, precisamos de alguns exemplos de saída relacionáveis ​​de nosso terminal. Vamos digitar uma string de comando em nosso terminal que nos permitirá listar os arquivos ativos e seus subdiretórios associados. Além disso, cada elemento da saída resultante deste comando será vinculado a um carimbo de data / hora que aponta para a última tentativa de modificação no arquivo, diretório ou subdiretório associado.

A string de comando a ser usada é a seguinte:

$ find . -printf '% T @% t% p \ n' | sort -k 1 -n | cut -d "-f2-

A imagem abaixo é a saída para usar a string de comando acima.

exemplo de saída do uso dos comandos find, sort e cut

De um ponto de vista analítico, a tela inferior da saída do comando representa os itens modificados recentemente em seu diretório de trabalho pai. A lista de saída pode ser longa, dependendo dos arquivos e pastas que você tem em sua máquina. Rolar para cima no terminal de saída revela arquivos mais antigos e modificações de pasta. Em resumo, temos uma saída que classifica os arquivos mais antigos e as modificações de pasta para as modificações mais recentes.

Como você notou, a string de comando acima que você colou em seu terminal tem três argumentos de comando importantes. Precisamos entender o que cada um deles faz.

Achar

O comando “localizar” é o primeiro a ser executado a partir da string de comando. Ele tem o único objetivo de listar recursivamente os arquivos e diretórios ativos em seu diretório de trabalho pai. O ".”Argumento que segue o argumento“ find ”aponta este comando para o diretório de trabalho atual. Se você não tiver certeza do diretório em que está; você pode digitar o comando “pwd” em seu terminal. Irá imprimir o caminho para o diretório que você está atualmente.

O ".”Argumento é traduzido como a saída do comando“ pwd ”. Torna mais fácil encontrar os arquivos e diretórios do seu diretório de trabalho atual. O próximo argumento na string de comando é “-printf”. É uma bandeira para um argumento de impressão. Ele imprime os arquivos e diretórios em seu diretório de trabalho atual em um formato especificado. O formato que ele assume é especificado pelo argumento “% T @% t% p \ n”. É o argumento do comando que o segue imediatamente.

A parte '% T @' deste argumento representa o tempo da época. Por definição, a época ou época Unix é o carimbo de data / hora em 1 de janeiro de 1970. É representado como 00:00:00 UTC. A saída em seu terminal assume este formato para representar as datas de modificação associadas aos arquivos e diretórios listados. A parte '% t' do argumento agora assume o formato de tempo de época para exibir o carimbo de data e hora de modificação mais recente associado aos arquivos e diretórios listados.

Dependendo de sua distribuição ou variação do Linux, a saída do terminal pode não exibir o tempo de época associado à lista de saída de arquivos modificados. Esta declaração é a prova do resultado do meu fim.

A parte '% p' ​​do argumento mostra os nomes dos arquivos exibidos no diretório de trabalho atual. Finalmente, a parte '/ n' do argumento serve ao propósito de um caractere de nova linha. Após cada listagem sucessiva de um arquivo modificado, este caractere de nova linha leva o cursor de exibição e salta a exibição do próximo arquivo para uma nova linha na tela do terminal. Torna-se mais fácil para nós associarmos cada arquivo exibido de maneira diferente.

Outra abordagem para trabalhar com a string de comando declarada anteriormente é substituir a parte '% t' do argumento “% T @% t% p \ n” por '% c'. A string de comando resultante deve ser semelhante a esta:

$ find . -printf '% T @% c% p \ n' | sort -k 1 -n | cut -d "-f2-

A saída da execução desta string de comando deve produzir uma saída semelhante à seguinte imagem.

alterar argumentos no comando localizar arquivo recursivamente

Observar a imagem acima revela profundamente a seguinte observação. A lista de saída de arquivos no diretório de trabalho atual é exibida com uma "hora da última mudança de status" em vez da "hora de modificação". É o efeito da substituição de '% c' por '% t' em “% T @% t% p \ n”. Este último comando imprime as alterações de permissão associadas à lista de arquivos de saída. O conteúdo dos arquivos pode não mudar, mas os metadados associados a eles mudam.

Neste estágio, os resultados de saída não seguem nenhuma ordem cronológica, pois ainda não abordamos o comando de classificação. O carimbo de data e hora da modificação é impresso primeiro, seguido pelo nome do arquivo associado.

Ordenar

Este argumento de comando tem três parâmetros, a saber '-k', '1' e 'n'. O comando sort é responsável pela ordem em que a saída da lista de arquivos aparece em nossas telas. Neste caso, a data de modificação é impressa primeiro, seguida pelo caminho do arquivo para o arquivo ou diretório modificado. A parte '-k' deste argumento de comando indica a posição inicial para iniciar o processo de classificação.

A parte '-k' do argumento do comando sort possui uma pergunta respondida pela parte '1' do mesmo argumento. Neste caso, o processo de classificação começa na primeira coluna, conforme indicado por '1'. O argumento do comando sort também é responsável por o arquivo modificado mais recente estar no final da lista e o mais antigo no topo. A parte '-n' do argumento é responsável pela numérica do tempo com a precisão das casas decimais.

Se você usar '-nr' em vez de '-n', a saída da string de comando terá os arquivos e diretórios recém-modificados na parte superior da saída do terminal e as modificações dos arquivos antigos na parte inferior. Ele inverte a ordem de classificação da saída do terminal.

Cortar

O objetivo principal do argumento do comando “cut” é organizar a saída de nossa impressão do terminal de uma maneira organizada. As opções '-d' e "deste argumento de comando combinam para gerar espaços em branco e, em seguida, cortar a impressão dos detalhes do conteúdo do arquivo que pode tentar obter esses espaços em branco.

Com esta string de comando simples, você pode imprimir recursivamente os arquivos em seu diretório de trabalho atual, com cada saída ligando os ditos arquivos às suas datas de modificação.

Opções alternativas de comando

Você pode argumentar que o comando “ls -lrt” lista perfeitamente todos os arquivos dentro de um caminho de diretório ativo em seu sistema operacional Linux, do mais antigo para modificar ao mais novo. Por outro lado, este comando não considera o conteúdo do arquivo existente nas subpastas. Se listar subdiretórios não for seu objetivo, você pode adicionar o argumento “-type f” à string de comando. Considere a seguinte modificação do comando.

$ find . -tipo f -printf '% T @% t% p \ n' | sort -k 1 -n | cut -d "-f2-

Usar o argumento do comando “-type d” terá um efeito oposto ao comando acima. Seu terminal irá apenas enviar diretórios modificados do mais antigo para o mais novo. Considere sua implicação da seguinte maneira:

$ find . -tipo d -printf '% T @% t% p \ n' | sort -k 1 -n | cut -d "-f2-

Nota final

Agora você está familiarizado com o passo a passo de impressão recursiva de arquivos e diretórios em seu diretório de trabalho atual com o conhecimento adicional de saber quando eles foram modificados pela última vez com base em seus carimbos de data / hora associados.

A partir desse conhecimento, você tem a capacidade de compor uma linha do tempo de eventos que revela cronologicamente a ordem de modificação dos arquivos e diretórios junto com o caminho para seu local de armazenamento.

Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...
Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...