Хотя вы можете использовать
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 следует полностью отменить ...).
«Лучшим» способом, который «лучше» в том, что он выполняется 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
один раз .
То, как я написал это выше, предполагает, что ни один из компонентов пути не содержит буквальных символов новой строки или пробелов (, чего они не делают в этом примере ).