GNU/Linux >> Linux の 問題 >  >> Linux

ファイル名を日付として 30 日以上経過したファイルを削除する

これが 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」で終了しました " 実際にファイルを削除する代わりに、これにより前に結果がテストされます。


zsh で :

zmodload zsh/datetime
strftime -s start '%Y_%m_%d.txt' $((EPOCHSECONDS - 30*86400))
echo -E rm -i 2*.txt(e:'[[ $REPLY > $start ]]':)

echo -E を削除します 幸せなとき。

GNU システム上で GNU シェル (bash )、あなたは何かに近づくことができます:

start=$(date -d '30 days ago' +%Y_%m_%d.txt)
list=()
shopt -s nullglob
for file in 2*.txt; do
  [[ $file > $start ]] && list+=("$file")
done
if (( ${#list[@]} > 0)); then
  echo -E rm -i "${list[@]}"
fi

Linux
  1. LinuxでX日より古いすべてのファイルを削除するにはどうすればよいですか?

  2. Find -mtime +1が2日より古いファイルのみを返すのはなぜですか?

  3. find を使用して、180 日以上経過したファイルごとに使用済みディスク容量の合計を計算する

  1. Linux で変更日に基づいてファイルをコピーする

  2. x日より古いファイルまたはフォルダーを見つけて削除する

  3. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

  1. サブディレクトリを含む x 日より古いファイルを削除する Bash スクリプト

  2. 1 分以上経過したすべてのファイルを検索

  3. 30 日以上経過したファイルを安全に削除する