Ich habe einen Ordner mit einer Reihe von Dateien. Ich muss alle Dateien löschen, die vor dem 1. Juli erstellt wurden. Wie mache ich das in einem Bash-Skript?Bash: Löschen basierend auf Datei Datumsstempel
Antwort
denke ich, sollte folgendes tun, was Sie wollen:
touch -t 201007010000 dummyfile
find /path/to/files -type f ! -newer dummyfile -delete
Die erste Zeile erstellt eine Datei, die geändert am 1. wurde zuletzt aktualisiert Juli 2010. Die zweite Zeile alle Dateien in/Pfad findet/to/file die ein Datum hat, das nicht neuer als die Dummydatei ist, und sie dann löscht.
Wenn Sie überprüfen möchten, dass es richtig funktioniert, dann lassen Sie das -delete
Argument fallen und es sollte nur die Dateien auflisten, die gelöscht werden würden.
Dies sollte funktionieren:
find /file/path ! -newermt "Jul 01"
die Dateien, die Sie löschen möchten, um, so dass der Befehl löschen würde:
find /file/path ! -newermt "Jul 01" -type f -print0 | xargs -0 rm
Eric, welche Version von find hat "neuere". Ich kann das auf keiner Man-Seite finden. – bramp
@ bramp: GNU 'find' hat diese Option. Allerdings hat Unix/Linux keine Vorstellung von einem Erstellungsdatum, also würde ich '-newermt' verwenden. Das 'c' ist für den Statuswechsel des Inode und nicht für" creation ". –
@Dennis: Vielen Dank für Ihre Klarstellung. –
- 1. Batch-Datei wenn Anweisung basierend auf dem Datumsstempel der Datei
- 2. Bash-Skript: Ich versuche, Datumsstempel Datei über SFTP
- 3. Löschen XElement basierend auf Attribut
- 4. Bash: Löschen bis eine bestimmte Datei
- 5. bash script - generiert Vorschläge basierend auf Benutzereingaben
- 6. Bash - Suche basierend auf Zeitstempel in Millisekunden
- 7. BASH - Löschen bestimmter Zeilen
- 8. Löschen auf mehrere Zeilen basierend wählen
- 9. Löschen bestimmter Spalten basierend auf den Bedingungen
- 10. Zeilen löschen in Datenrahmen basierend auf Spaltenwerte
- 11. löschen Vektoreinträge basierend auf einem anderen Vektor
- 12. Löschen Spalte basierend auf Typ in KDB +
- 13. Datumsstempel zu einer TXT-Datei in einem SSIS-Paket hinzufügen?
- 14. umleiten Befehl auf eine Variable oder eine Datei basierend auf seinem Exit-Code Bash-Skript?
- 15. So löschen Sie eine Zeichenfolge aus einer Datei in bash
- 16. Datei Split basierend auf Inhalt
- 17. So löschen Sie doppelte Zeilen basierend auf einem Spaltenwert?
- 18. Datei auf Karussell nicht löschen
- 19. Datumsstempel auf mehrere Textdateien in einem Verzeichnis mit Fledermaus-Skript
- 20. C# Linq zu xml, löschen Namensschild basierend auf nächsten Tag
- 21. Lesen und Ausführen verschiedener Befehle basierend auf jeder Zeile der Datei in Bash Linux?
- 22. Bash: Filtern von Datensätzen in einer Datei basierend auf mehreren Spaltenbegrenzer
- 23. Sortiere eine tabulatorgetrennte Datei basierend auf dem Befehl column sort bash
- 24. Datei beim Löschen löschen sys_file_reference
- 25. Löschen von Zeilen aus CSV basierend auf Eingabedatei
- 26. Join und Löschen von Linien basierend auf Patern
- 27. regexp - mehrere Variationen von Datumsstempel entsprechen
- 28. vergleicht Datei Datum bash
- 29. Löschen eines bestimmten Eintrags aus einer Bibtex-Datei basierend auf Cite-Schlüssel mit Python
- 30. löschen Sie eine Datei in mehreren Verzeichnissen basierend auf dem Status der Suche Befehl in Unix
Nach dem Fallenlassen der '-' vor‚f Jetzt scheint es alle Dateien aufzulisten. Wenn ich das '!' Es listet nur die neueren Dateien auf. –
Ich schamlos/änderte die Antwort von http://forums.devshed.com/unix-help-35/finding-a-file-modified-created-before-a-specific-date-468700.html – bramp
oh ja Entschuldigung , es sollte kein -f geben, nur f. – bramp