ファイル名の日付に基づいて30日以上経過したファイルを削除します。

ファイル名の日付に基づいて30日以上経過したファイルを削除します。

ファイル名が作成日のファイルフォルダがある場合:

2019_04_30.txt
2019_04_15.txt
2019_04_10.txt
2019_02_20.txt
2019_01_05.txt

ファイル名を今日の現在の日付と比較する方法

$ date "+%Y_%m_%d"
>>> 2019_04_30

ファイル名が30日より古い場合は削除されます。やっぱり手に入れて欲しい

2019_04_30.txt
2019_04_15.txt
2019_04_10.txt

この命名規則に従う必要はなく、より適切な日付形式を使用できます。

ベストアンサー1

以下はbashソリューションです。

f30days=$(date +%s --date="-30 days")
for file in 20*.txt; do
    fdate=$(echo $file | tr _ -)
    fsec=$(date +%s --date=${fdate/.txt/})
    if [[ $fsec -lt $f30days ]]; then
        echo "rm $file"
    fi
done

echo rm $file実際にファイルを削除する代わりに ""で終わりましたが、これは以前に結果をテストします。

おすすめ記事