GNU/Linux >> Linux Esercitazione >  >> Linux

Trova directory con tutti i file all'interno più vecchi di X?

Probabilmente è possibile farlo senza creare file utilizzando la sostituzione del processo o qualcosa del genere, ma ecco una soluzione rapida e sporca:

find . -type f -mtime +30 -printf '%h\n' | sort | uniq > old.txt
find . -type f -mtime -30 -printf '%h\n' | sort | uniq > new.txt
grep -vf new.txt old.txt

Il primo comando emette il percorso di ogni file modificato più di 30 giorni fa (in -printf di find -- almeno con GNU find sul mio sistema -- %h stampa l'intero percorso tranne il nome del file vero e proprio), poi li ordina e si sbarazza di eventuali duplicati, e inserisce il tutto in un file chiamato old.txt .

Il secondo comando fa lo stesso ma con tutti i file modificati meno di 30 giorni fa e li inserisce in un altro file, new.txt .

La riga grep stampa ogni riga da old.txt che non appare in new.txt -- quindi ti darà un elenco di directory che contengono solo file che sono stati modificati l'ultima volta più di 30 giorni fa.

Tutto questo utilizzando le versioni GNU delle utilità. Non so se la sintassi corrisponde alle versioni BSD, ecc.


Finalmente ho capito la magica battuta:

for dir in `find . -type d -mtime +30`; do test `find $dir -type f -mtime -30 -print -quit` || echo $dir; done

Stampa tutte le directory con un tempo di modifica superiore a 30 giorni e nessun file modificato negli ultimi 30 giorni.


Linux
  1. Trova file e directory su Linux con il comando find

  2. Rimuovere tutti i file/directory tranne un file?

  3. Visualizzazione di tutti i file ".sh" con dimensioni superiori a 5kb?

  4. Come trovare file con il comando fd in Linux

  5. Elenca in modo ricorsivo tutti i file in una directory, inclusi i file nelle directory dei collegamenti simbolici

Come eliminare file più vecchi di giorni specificati in Linux

Eliminare tutti i file e le cartelle in /tmp più vecchi di un giorno?

Come trovare tutti i file di dimensioni superiori a 1 GB in Linux?

Come trovare tutti i file/cartelle con l'autorizzazione 777 in Linux?

Trova tutti i file con nome contenente una stringa

Trova tutti i file più vecchi di un minuto