1

В каталоге есть файлы с именами, заканчивающимися от 001 до 100. Как вы можете удалить 2,4,6,8 ... 100. И может ли это быть написано как сценарий. Как только каталог становится недельным, он должен запускаться. И через месяц снова. Цель состоит в том, чтобы удалить половину последних данных.

2 ответа2

3

Вы можете использовать bash для цикла с шагом (если это bash v4)

так было бы

#!/usr/bin/bash

cd /path/to/directory/

for i in `ls *{0..100..2}`
do 
    rm $i
done

это может быть помещено в ваш crontab для запуска каждую неделю / месяц

00 11 1 * * /path/to/script.sh запустит его в первый день месяца в 11:00.

00 11 * * 1 /path/to/script.sh будет запускать его каждый понедельник

1

Нечто подобное должно работать (не могу проверить прямо сейчас, поэтому сначала проверьте дублирующиеся данные) -

 find /path/to/directory -type f -name '*[02468].jpg' -delete

или с помощью rm -

 find /path/to/directory -type f -name '*[02468].jpg' -exec rm {} +

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .