
Ich habe einen Ordner wie diesen erstellt:
$folder_name=`date "+%Y%m%d"`
$mkdir -p ${DIR_LOG}/${folder_name}
Beispiel für Ordnernamen: [20160622]
, [20160621]
...usw
Jetzt muss ich diese Ordner finden und löschen (Ordner sind nicht leer), wenn sie 3 Monate älter sind. Ich habe Folgendes versucht:
find ${DIR_LOG}/* -name "*.${folder_name}" -type d -mtime +90 -exec rm -rf {} \;
Dadurch werden nur Ordner gelöscht, die ein aktuelles Datum haben und keine anderen Ordner wie ( 20160621
).
Antwort1
Führen Sie dies zuerst aus, um sicherzustellen, dass die gewünschten Verzeichnisse abgerufen werden.
find ${DIR_LOG} -type d -mtime +90 -name "20[0-1][0-9][0-9][0-9][0-9][0-9]"
Führen Sie dies dann aus, um sie tatsächlich zu löschen.
find ${DIR_LOG} -type d -mtime +90 -name "20[0-1][0-9][0-9][0-9][0-9][0-9]" -exec rm -Rf {} \;