При помощи ls можно сделать более универсально - прописать полный адрес и тогда запускать можно не только из каталога с файлами, а из любого места.
Хотя если выполнять только в текущей папке, то согласен, лучше будет писать for i in *
В любом случае проще и удобнее сказать просто
gzip /путь/к/файлам/*
и каждый файл отдельно запакуется, и оригиналы удалятся, и команда всего одна.