Risposte:
Prima di tutto, il fatto che stai usando ssh non ha importanza. Ciò che conta è la "shell" che ti è stata presentata e quali strumenti hai a disposizione. Presumo che tu sia in "Bash" e abbia "trova" disponibile.
Suppongo anche che per "creato nell'anno 2009" intendi "più vecchio del 2010" in quanto mi rende più facile ... se non lo fai, guarda oltre l'interruzione!
Prova find
:
find /path/to/directory/ -ctime +567 -delete
Quanto sopra cancellerà qualcosa di più di 567 giorni (all'incirca al 2009 alla data di questo post)
Invece di -delete
te "potresti" usare -print
prima. Quando sei sicuro che stia stampando solo ciò che vuoi eliminare, quindi usa -delete
.
Se non desideri eliminare elementi dal 2008, puoi "fare" quanto segue:
find /path/to/directory/ -ctime +567 -ctime -932 -delete
Quei numeri probabilmente non sono corretti, puoi perfezionarlo.
Sezioni rilevanti dell'uomo trovano :
-ctime n
File's status was last changed n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file status change times.
Numeric arguments can be specified as
+n for greater than n,
-n for less than n,
n for exactly n.
Suppongo che tu stia usando PuTTY per connetterti a qualche computer che esegue una distribuzione di Linux usando SSH. Sfortunatamente, la maggior parte delle distribuzioni Linux non registra la data di creazione di un file. Puoi scoprire solo quando un file è stato modificato l'ultima volta e quando è stato effettuato l'ultimo accesso.
Se vuoi trovare tutti i file nella directory corrente che sono stati modificati l'ultima volta nel 2009, usa questo comando:
find * \( ! -newermt '2010-01-01' \) -newermt '2008-12-31 23:59' -type f
Se vuoi cercare anche le sottodirectory, modifica *
in .
e rimuovi in questo -type f
modo:
find . \( ! -newermt '2010-01-01' \) -newermt '2008-12-31 23:59'
I due comandi precedenti stamperanno solo i nomi dei file. Se sei sicuro di voler eliminare i file, aggiungi -delete
alla fine:
find * \( ! -newermt '2010-01-01' \) -newermt '2008-12-31 23:59' -type f -delete
La soluzione migliore è scrivere uno script shell sul server di destinazione. Plink non fornisce alcuna elaborazione per stdin. Vedi: https://stackoverflow.com/questions/603187/how-to-send-commands-to-putty