Como deletar todos os arquivos com base no ano no unix?

Como deletar todos os arquivos com base no ano no unix?

Preciso excluir todos os arquivos de um diretório criado em 2018. Que comando posso usar para fazer isso?

Responder1

Opção de uso find -newermt:

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

ou para menos pensar:

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

Mude -printpara -deletese estiver satisfeito com o resultado.

Responder2

Um script como este:

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

Chame o script e passe o nome do diretório, por exemplokill2018 /home/me/Documents

informação relacionada