Ich muss alle Dateien, die älter als eine bestimmte Datei sind, aus einem Ordner löschen.
Bash unter CentOS 7 ausführen
Ich habe eine Lösung dafür, aber ich denke, es sollte einen eleganteren Weg geben, dies zu tun:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
bash
shell-script
centos
csny
quelle
quelle
-maxdepth 1
, um die Suche nicht rekursiv zu halten! -newer
bedeutet "nicht neuer", also "älter oder gleich alt "; Die Datei selbst wird abgeglichen, wenn sie sich im Pfad befindetfind
.! -name reference
(siehe den dritten Punkt).Vergleichen Sie die Änderungszeiten von Dateien
test
mit-nt
(neuer als) und-ot
(älter als) Operatoren:quelle