GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Il motivo principale per cui la maggior parte degli utenti di sistemi operativi sceglie Linux rispetto ad altri sistemi operativi è la libertà di esplorare. Con Linux, sei vincolato ad alcune regole del sistema operativo liberamente accoppiate. Il sistema operativo predefinisce alcune regole standard modificabili da utilizzare all'interno del suo ambiente.

Una volta tolto il mantello da principiante, puoi uscire da queste regole predefinite e crearne di tue. Sotto Linux, il sistema operativo è il tuo fedele servitore e tu il padrone.

Questo caso non è possibile in altre distribuzioni del sistema operativo poiché sono presenti troppe astrazioni. I sistemi operativi qui sono più del tuo assistente. Non puoi mai avere più potenza del sistema operativo, come nel caso di Linux. Man mano che continui a costruire la tua esperienza utente in un ambiente con sistema operativo Linux, la tua curiosità sul sistema operativo aumenterà ogni giorno. Vorrai sempre sapere cosa si nasconde qui e cosa puoi fare di più sotto il suo ombrellone.

Lavorare con file e directory su Linux

Uno scenario perfetto è la tua interazione quotidiana con file e cartelle nell'ambiente del sistema operativo Linux. C'è di più nell'uso del file system del sistema operativo Linux oltre alla semplice creazione, modifica, modifica ed eliminazione dei file system e delle cartelle dell'utente. Ogni azione collegata ai file e alle cartelle/directory dell'utente in un ambiente Linux lascia un'impronta o un'impronta digitale dell'utente. È come entrare in una stanza per toccare e scambiare oggetti.

Se un proprietario o un custode Linux gestisce questa stanza in cui sei entrato, saprà esattamente cosa hai fatto e quali elementi hai toccato o scambiato. Linux ha comandi utili per aiutarci a raggiungere tali risultati. Saprai cosa è successo ai file e alle cartelle nel tuo sistema operativo Linux e identificherai queste azioni in base a quando si sono verificate.

In breve, quando si tratta di file e directory in un ambiente del sistema operativo Linux, è possibile creare una sequenza temporale degli eventi per identificare le modifiche dei file vulnerabili tramite timestamp allegati a ciascuna modifica. Come vantaggio, saprai se la modifica è stata associata a contenuti dannosi tramite i log di sistema generati.

I comandi Linux da usare

Forniremo alcuni semplici comandi per aiutarci a comprendere le implicazioni oggettivate di questo articolo. Devi prima avviare il tuo terminale e navigare in un percorso di sistema che sai ha molti file e directory di cartelle. Per essere sicuro e non giocare con i tuoi file di sistema vulnerabili, puoi usare la tua directory "Documenti" che di solito è predefinita nel sistema operativo Linux. Il comando seguente dovrebbe portarti a questa directory "Documenti".

$ cd ~/Documents

È una directory popolare con molti file e sottodirectory. Un'altra directory da utilizzare per questo esperimento di articolo è la directory "Download". È un posto in cui non perderai mai i file scaricati e altre sottodirectory.

$ cd ~/Downloads

Per dare il via a questo esperimento, abbiamo bisogno di un output di esempio riconoscibile dal nostro terminale. Digiteremo una stringa di comando sul nostro terminale che ci consentirà di elencare i file attivi e le loro sottodirectory associate. Inoltre, ogni elemento dell'output risultante da questo comando sarà collegato a un timestamp che punta all'ultimo tentativo di modifica sul file, directory o sottodirectory associati.

La stringa di comando da utilizzare è la seguente:

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

Lo screenshot seguente è l'output per l'utilizzo della stringa di comando sopra.

Da un punto di vista analitico, la schermata inferiore dell'output del comando rappresenta gli elementi modificati di recente nella directory di lavoro principale. L'elenco di output può essere lungo, a seconda dei file e delle cartelle presenti sul computer. Scorrendo verso l'alto sul terminale di output vengono visualizzati i file più vecchi e le modifiche alle cartelle. In sintesi, abbiamo un output che classifica i file e le modifiche alle cartelle meno recenti in base alle modifiche più recenti.

Come hai notato, la stringa di comando sopra che hai incollato sul tuo terminale ha tre importanti argomenti di comando. Dobbiamo capire cosa fa ciascuno di loro.

Trova

Il comando "trova" è il primo ad essere eseguito dalla stringa di comando. Ha l'unico obiettivo di elencare in modo ricorsivo i file e le directory attivi nella directory di lavoro principale. Il "." argomento che segue l'argomento "trova" punta questo comando alla directory di lavoro corrente. Se non sei sicuro della directory in cui ti trovi; puoi digitare il comando "pwd" sul tuo terminale. Stamperà il percorso della directory in cui ti trovi attualmente.

Il "." argomento viene tradotto come output del comando "pwd". Semplifica la ricerca dei file e delle directory della directory di lavoro corrente. L'argomento successivo nella stringa di comando è "-printf". È un flag per un argomento print. Stampa i file e le directory nella directory di lavoro corrente in un formato specificato. Il formato che assume è specificato dall'argomento “%T@%t%p\n”. È l'argomento del comando che lo segue immediatamente.

La parte '%T@' di questo argomento rappresenta l'epoca. Per definizione, epoch time o Unix epoch è il timestamp del 1 gennaio 1970. È rappresentato come 00:00:00 UTC. L'output sul tuo terminale assume questo formato per rappresentare le date di modifica associate ai file e alle directory elencati. La parte '%t' dell'argomento ora utilizza il formato dell'ora epoch per visualizzare l'ultima data e ora di modifica associata ai file e alle directory elencati.

A seconda della distribuzione o dell'aroma di Linux, l'output del terminale potrebbe non visualizzare l'epoca associata all'elenco di output dei file modificati. Questa affermazione è la prova dell'output della mia fine.

La parte '%p' dell'argomento restituisce i nomi dei file visualizzati su quella directory di lavoro corrente. Infine, la parte "/n" dell'argomento serve allo scopo di un carattere di nuova riga. Dopo ogni successivo elenco di un file modificato, questo carattere di nuova riga prende il cursore di visualizzazione e salta la visualizzazione del file successivo su una nuova riga sullo schermo del terminale. Ci rende più facile associare ogni file visualizzato in modo diverso.

Un altro approccio per lavorare con la stringa di comando indicata in precedenza consiste nel sostituire la parte "%t" dell'argomento "%T@%t%p\n" con "%c". La stringa di comando risultante dovrebbe essere simile alla seguente:

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

L'output dell'esecuzione di questa stringa di comando dovrebbe produrre un output simile allo screenshot seguente.

L'osservazione dello screenshot sopra rivela acutamente la seguente osservazione. L'elenco di output dei file nella directory di lavoro corrente viene visualizzato con un "ora dell'ultimo cambio di stato" invece del "tempo di modifica". È l'effetto della sostituzione di "%c" con "%t" in "%T@%t%p\n". Quest'ultimo comando stampa le modifiche alle autorizzazioni associate all'elenco dei file emessi. Il contenuto dei file potrebbe non cambiare, ma i metadati ad essi associati lo fanno.

In questa fase, i risultati di output non seguono alcun ordine cronologico poiché dobbiamo ancora indirizzare il comando di ordinamento. Viene prima stampato il timestamp della modifica, seguito dal nome del file associato.

Ordina

Questo argomento del comando ha tre parametri, vale a dire '-k', '1' e 'n'. Il comando sort è responsabile dell'ordine in cui l'output dell'elenco dei file appare sui nostri schermi. In questo caso, viene stampata prima la data di modifica, seguita dal percorso del file o directory modificata. La parte "-k" di questo argomento del comando indica la posizione iniziale per iniziare il processo di ordinamento.

La parte "-k" dell'argomento del comando di ordinamento possiede una domanda a cui viene risposto dalla parte "1" dello stesso argomento. In questo caso, il processo di ordinamento parte dalla prima colonna come indicato da '1'. L'argomento del comando sort è anche responsabile del fatto che il file modificato più recente si trovi in ​​fondo all'elenco e il più vecchio in cima. La parte '-n' dell'argomento è responsabile del numero del tempo con la precisione dei punti decimali.

Se usi '-nr' invece di '-n', l'output della stringa di comando avrà i file e le directory appena modificati in cima all'output del terminale e le vecchie modifiche ai file in basso. Inverte l'ordinamento dell'output del terminale.

Taglia

Lo scopo principale dell'argomento del comando "cut" è organizzare l'output della stampa del nostro terminale in modo ordinato. Le opzioni '-d' e ' ' di questo argomento del comando si combinano per generare spazi bianchi e quindi tagliare la stampa dei dettagli del contenuto del file che potrebbe tentare di ottenere questi spazi bianchi.

Con questa semplice stringa di comando, puoi stampare ricorsivamente i file nella tua directory di lavoro corrente, con ogni output che collega detti file alle loro date di modifica.

Opzioni di comando alternative

Potresti obiettare che il comando "ls -lrt" elenca perfettamente tutti i file all'interno di un percorso di directory attiva sul tuo sistema operativo Linux, dal più vecchio da modificare al più recente. D'altra parte, questo comando non considera il contenuto del file esistente nelle sottocartelle. Se elencare le sottodirectory non è il tuo obiettivo, puoi aggiungere l'argomento "-type f" alla stringa di comando. Considera la seguente modifica del comando.

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

L'uso dell'argomento del comando "-type d" avrà un effetto opposto al comando precedente. Il tuo terminale produrrà solo directory modificate dalla più vecchia alla più recente. Considera le sue implicazioni come segue:

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

Nota finale

Ora hai familiarità con la procedura dettagliata per la stampa ricorsiva di file e directory nella directory di lavoro corrente con l'ulteriore conoscenza di sapere quando sono stati modificati l'ultima volta in base ai timestamp associati.

Da questa conoscenza, hai la capacità di comporre una sequenza temporale di eventi che rivela cronologicamente l'ordine di modifica dei file e delle directory insieme al percorso della loro posizione di archiviazione.


Linux
  1. Come trovare e ordinare i file in base alla data e all'ora di modifica in Linux

  2. Come cercare e rimuovere le directory in modo ricorsivo su Linux

  3. Linux:ottenere file per la data corrente in Linux?

  4. Come elencare in modo ricorsivo tutti i file e le directory

  5. Come elencare i file in modo ricorsivo e ordinarli in base all'ora di modifica?

Come trovare ed eliminare file duplicati in Linux

Come trovare file con il comando fd in Linux

Come trovare file duplicati in Linux e rimuoverli

Come elencare i file in modo ricorsivo in Linux

Come trovare la data e l'ora di installazione del sistema operativo Linux

Come trovare l'elenco dei repository installati in Linux