UNIX で年に基づいてすべてのファイルを削除するにはどうすればよいですか?

UNIX で年に基づいてすべてのファイルを削除するにはどうすればよいですか?

2018 年に作成されたディレクトリ内のすべてのファイルを削除する必要があります。そのためにはどのようなコマンドを使用できますか?

答え1

オプションを使用find -newermt:

find /path/to/directory -type f -newermt 2018-01-01 ! -newermt 2019-01-01 -print

あるいは、あまり考えずに:

y=2018
find /path/to/directory -type f -newermt $y-01-01 ! -newermt $((y+1))-01-01 -print

結果に満足したら-printに変更します。-delete

答え2

次のようなスクリプト:

DIR="$1"
for f in "$DIR"/*
do
    FileDate=$(stat -c %y "$f")
    if [[ "${FileDate:0:4}" = "2018" ]] ; then
        rm "$f"
    fi
done

スクリプトを呼び出してディレクトリ名を渡します。例:kill2018 /home/me/Documents

関連情報