[BASH] Trovare i file annidati che siano stati modificati in un intervallo di tempo specifico?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1812
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 18.04 Bionic Beaver
Sesso: Maschile
Località: Roma, Italia

[BASH] Trovare i file annidati che siano stati modificati in un intervallo di tempo specifico?

Messaggio da DoctorStrange » lunedì 16 marzo 2020, 11:22

Buongiorno a tutti,

Mi trovo in questa situazione: per lavoro stò usando un'applicazione che si chiama alfresco. Recentemente, più precisamente, nella giornata di sabato 14 Marzo, un mio collega ha apportato alcune modifiche indispensabili al funzionamento di questa applicazione. Sò per certo che le modifiche apportate si trovano all'interno di una specifica directory, ma non so di preciso quali files lui abbia modificato.

la domanda è dunque: esiste uno script, od un modo specifico per addestrare il comando find a trovare le modifiche avvenute in tutti i files annidati in questa directory, esattamente in questa data? E, a maggior ragione, espandere questa ricerca a tutti i files annidati all'interno della directory principale dell'applicazione, che mi sono appositamente salvato?

Sò che devo studiare meglio il funzionamento del comando "find", ma avere una guida credo possa essere il metodo migliore.

Vi ringrazio.

Un saluto

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3787
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatti:

Re: [BASH] Trovare i file annidati che siano stati modificati in un intervallo di tempo specifico?

Messaggio da UbuNuovo » lunedì 16 marzo 2020, 12:39

Anch'io non mi ricordo mai la sintassi giusta, ti posto i miei vecchi appunti. Con ls e con find:

Codice: Seleziona tutto

ls -al --time-style=+%D | grep $(date +%D)			# oggi non ricorsivo (date +%D-> 07/31/14)
ls -al -R --time-style=+%D | grep $(date +%D)		# oggi ricorsivo
find "$HOME" -mtime -1							# nelle ultime 24 ore
find "$HOME" -mtime -7							# nell'ultima settimana
find "$HOME" -mmin -50						# negli ultimi 50 minuti
find "$HOME" -mtime +180 -daystart				# più di 180 giorni fa
find "$HOME" -mtime -5 -mtime -7 -daystart		# da 5 a 7 giorni fa

ls -lat | head 		# trova i 10 file modificati più di recente  nella dir corrente
					# (-t ordina per data di modifica, -a file nascosti, -l formato lungo)
					
ls -lat | grep .txt		# trova i file di testo modificati di recente nella dir corrente
ls -Rlat | grep .txt	# trova i file di testo modificati di recente anche nelle sottodir
Naturalmente: Con grep puoi filtrare in base alla data che vuoi
con find puoi usare anche altri parametri, per esempio: -type, -name, -iname...
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.

Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti