Impara Linux

Come trovare ed elencare ricorsivamente i file per data in Linux

Come trovare ed elencare ricorsivamente 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 debolmente accoppiate. Il sistema operativo predefinisce alcune regole standard modificabili da utilizzare all'interno del suo ambiente.

Una volta che ti sei tolto il cappotto del principiante, puoi uscire da queste regole predefinite e crearne una tua. Sotto Linux, il sistema operativo è il tuo fedele servitore e tu il padrone.

Questo caso non è praticabile in altre distribuzioni del sistema operativo poiché ci sono troppe astrazioni in atto. 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 del sistema operativo Linux, la tua curiosità per il sistema operativo crescerà 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'usare il 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 di sistema operativo Linux, possiamo 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 attraverso i registri di sistema generati.

I comandi di Linux da usare

Invieremo alcuni semplici comandi per aiutarci a capire l'implicazione oggettivata di questo articolo. Devi prima avviare il tuo terminale e navigare in un percorso di sistema che sai avere 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 seguente comando dovrebbe portarti a questa directory "Documenti".

$ cd ~/Documenti

È 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 ti perderai mai i file scaricati e altre sottodirectory.

$ cd ~/Download

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

La stringa di comando da utilizzare è la seguente:

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

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

output di esempio dell'utilizzo del comando trova, ordina e taglia

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 che hai sul tuo computer. Scorrere verso l'alto sul terminale di output rivela i file più vecchi e le modifiche alle cartelle. In sintesi, abbiamo un output che classifica i file più vecchi e le modifiche alle cartelle con le 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 da eseguire 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 ".” che segue l'argomento “find” 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 ".” viene tradotto come l'output del comando “pwd”. Rende più facile trovare i file e le directory della tua directory di lavoro corrente. L'argomento successivo sulla stringa di comando è "-printf". È un flag per un argomento di stampa. Stampa i file e le directory nella directory di lavoro corrente in un formato specificato. Il formato che prende è specificato dall'argomento "%T@%t%p\n". È l'argomento del comando che lo segue immediatamente.

La parte '%T@' di questo argomento rappresenta il tempo dell'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 prende questo formato per rappresentare le date di modifica associate ai file e alle directory elencati. La parte '%t' dell'argomento ora prende il formato dell'ora dell'epoca per visualizzare il timestamp dell'ultima modifica associato ai file e alle directory elencati.

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

La parte '%p' dell'argomento restituisce i nomi dei file visualizzati in quella directory di lavoro corrente. Infine, la parte '/n' dell'argomento ha lo scopo di un carattere di nuova riga. Dopo ogni elenco successivo di un file modificato, questo carattere di nuova riga prende il cursore di visualizzazione e salta la visualizzazione del file successivo a una nuova riga sullo schermo del terminale. Ci semplifica l'associazione di ciascun file visualizzato in modo diverso.

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

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

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

modifica degli argomenti sul comando di ricerca file in modo ricorsivo

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 "orario 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 in output. Il contenuto dei file potrebbe non cambiare, ma i metadati ad essi associati sì.

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

Ordinare

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 della directory modificata. La parte '-k' di questo argomento di 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 si risponde con la parte '1' dello stesso argomento. In questo caso, il processo di ordinamento inizia dalla prima colonna come indicato da '1'. L'argomento del comando sort è anche responsabile del fatto che il file modificato più recente sia in fondo all'elenco e il più vecchio in cima. La parte '-n' dell'argomento è responsabile del valore numerico del tempo con precisione in punti decimali.

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

Taglio

Lo scopo principale dell'argomento del comando "cut" è organizzare l'output della stampa del nostro terminale in modo ordinato ti. Le opzioni '-d' e "di questo argomento di comando si combinano per generare spazi bianchi e quindi tagliare la stampa dei dettagli del contenuto del file che potrebbe tentare di superare 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 i suddetti 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 attivo 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.

$ trova . -digita f -printf '%T@ %t %p\n' | sort -k 1 -n | taglia -d"-f2-

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

$ trova . -digita d -printf '%T@ %t %p\n' | sort -k 1 -n | taglia -d"-f2-

Nota finale

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

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

Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...
Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...
Come invertire la direzione di scorrimento del mouse e dei touchpad in Windows 10
Topo e Touchpads non solo rende l'elaborazione semplice, ma anche più efficiente e richiede meno tempo. Non possiamo immaginare una vita senza questi ...