удалить файлы путем итерации массива?

Хотя вы можете использовать

sudo timedatectl --adjust-system-clock set-local-rtc true

на установить аппаратные часы на использование местного времени, это отключит синхронизацию NTP и timedatectl status четко уведомит вас:

Сетевое время включено: да NTP синхронизировано: нет RTC в локальном TZ: да

Предупреждение: система настроена на считывание времени RTC в локальном часовом поясе. Этот режим не может быть полностью поддержан. Это создаст различные проблемы при смене часового пояса и переходе на летнее время. Время RTC никогда не обновляется, для его поддержки используются внешние средства.
Если возможно, используйте RTC в формате UTC, вызвав
'timedatectl set-local-rtc 0'.

Таким образом, похоже, нет никакого способа выполнить эту работу без нарушения адаптации DST (опять же, DST следует полностью отменить ...).

0
02.05.2018, 08:22
1 ответ

«Лучшим» способом, который «лучше» в том, что он выполняется rmреже, было бы использованиеxargs:

{
    for pm in "${pri[@]}"; do
        printf '/primary/abc_monthly_%s_log.data\n' "$pm"
    done

    for sm in "${snd[@]}"; do
        printf '/secondary/abc_monthly_%s_log.data\n' "$sm"
    done
} | xargs rm

Это будет использовать циклы только как средство для создания путей. Эти пути затем передаются в xargs rm, который будет выполнять rmна как можно большем количестве из них одновременно. С примерами массивов, которые вы предоставили, он, вероятно, просто запуститrmодин раз .

То, как я написал это выше, предполагает, что ни один из компонентов пути не содержит буквальных символов новой строки или пробелов (, чего они не делают в этом примере ).

2
28.01.2020, 02:43

Теги

Похожие вопросы