Как удалить все файлы по году в 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

Связанный контент