Ho una cartella con un mucchio di file. Devo cancellare tutti i file creati prima del 1 luglio. Come faccio a farlo in uno script bash?Bash: eliminazione basata sul timbro data del file
risposta
penso che il seguente dovrebbe fare ciò che si vuole:
touch -t 201007010000 dummyfile
find /path/to/files -type f ! -newer dummyfile -delete
La prima riga crea un file che è stato modificato il 1 ° luglio 2010. La seconda linea ultima trova tutti i file in/path/to/file di che ha una data non più recente del dummyfile e quindi le elimina.
Se si desidera verificare che funzioni correttamente, rilasciare l'argomento -delete
e dovrebbe solo elencare i file che verrebbero eliminati.
questo dovrebbe funzionare:
find /file/path ! -newermt "Jul 01"
per trovare i file che si desidera eliminare, in modo che il comando per eliminare loro sarebbe:
find /file/path ! -newermt "Jul 01" -type f -print0 | xargs -0 rm
Eric, quale versione di find ha "newerct". Non riesco a trovarlo elencato in nessuna pagina man. – bramp
@bramp: GNU 'find' ha questa opzione. Comunque, Unix/Linux non ha la nozione di una data di creazione, quindi userei '-newermt'. Il 'c' è per il cambio di stato dell'inode anziché della" creazione ". –
@Dennis: Grazie per il vostro chiarimento. –
- 1. Eliminazione del file specificato
- 2. formattato data/ora del file su mac bash?
- 3. Eliminazione di file sul server remoto
- 4. basata sul cambio dom
- 5. Eliminazione del contenuto del file android
- 6. Eliminazione del contenuto del file di testo
- 7. Come ottenere l'ora e la data dal timbro datetime
- 8. Animazione UIImmagine basata sul feedback del livello del volume
- 9. Jenkins - azione di post-generazione del trigger basata sul parametro
- 10. Eliminazione del file dopo il caricamento
- 11. Eliminazione del file, ma accesso negato
- 12. Pandas ricerca basata sul valore
- 13. Indicizzazione hiearchical basata sul sottolivello
- 14. Data di scadenza del partecipante basata su turni Sempre NULL
- 15. Bash data/ora aritmetica
- 16. stringa bash alla data
- 17. bash script - controlla se il database mysql esiste esegui un'azione basata sul risultato
- 18. Scansione basata sul timestamp in HBase?
- 19. Selezione condizionale basata sul valore della colonna
- 20. Git, eliminazione del repository
- 21. fullcalendar.js - eliminazione evento sul pulsante clic
- 22. RDLC, Immagine dinamica basata sul parametro, C#
- 23. Eliminazione file Java 6
- 24. iis7 L'autenticazione basata sul Challenge e basata sul reindirizzamento non può essere utilizzata simultaneamente
- 25. Come funziona 'LOAD DATA INFILE' nella replica basata su istruzioni?
- 26. Eliminazione di file ASP.Net temporanei
- 27. Aggiungere il timbro di tempo per un nome di file in Ubuntu
- 28. Blocco file ed eliminazione
- 29. Stampa l'ultima data di modifica di un file in Bash
- 30. Ottenere la data/ora del pacchetto tramite la chiamata ioctl sul descrittore del file socket
Dopo aver lasciato il '-' davanti a 'f ', ora sembra elencare tutti i file. Se rilascio il '!' elenca solo i file più recenti. –
Ho rubato/alterato senza vergogna la risposta da http://forums.devshed.com/unix-help-35/finding-a-file-modified-created-before-a-specific-date-468700.html – bramp
oh sì scusa , non ci dovrebbe essere un -f, solo f. – bramp