Gzip работает только для отдельных файлов.Если вам нужны отдельные файлы, вам нужно выполнить одно из следующих действий:
Объединить файлы, используя tar:
tar cf status_2017.tar.gz statuslogs/daily_status_2017*.log
ИЛИ использовать zip, который поддерживает несколько файлов напрямую
zip status_2017.zip statuslogs/daily_status_2017*.log
Теперь, если проблема в том, что вам нужен один архив на каждый год, но только на те годы, для которых существуют файлы, вы можете обрабатывать все годы, используя цикл for
:
for year in `ls statuslogs/daily_status_* | cut -d _ -f 3 | sort | uniq`; do
tar cf status_$year.tar.gz statuslogs/daily_status_$year*.log;
done
Если ваша оболочка не поддерживает этот формат вызова, вы можете попробовать это вместо этого
ls statuslogs/daily_status_* | cut -d _ -f 3 | sort | uniq > years
cat years | while read year; do
tar cf status_$year.tar.gz statuslogs/daily_status_$year*.log;
done
Если вам нужен только один файл для всех журналов, вы можете просто полностью забыть о годовой части
tar cf statuslogs.tar.gz statuslogs/daily_status*.log