Не используйте gzip
, вместо этого используйте zcat
, который не ожидает расширения. Вы можете сделать все за один раз. Просто попытайтесь zcat
файл и, если это не удастся, потому что он не сжат, cat
его вместо этого:
for f in *; do
( zcat "$f" || cat "$f" ) > temp &&
mv temp "$f".ext &&
rm "$f"
done
Сценарий выше сначала попытается zcat
файл в temp
и, если это не удастся (если файл не в формате gzip), он просто cat
его. Это выполняется в подпрограмме для перехвата вывода любой команды и перенаправления его в временный файл (temp
). Затем temp
переименовывается в оригинальное имя файла плюс расширение (.ext
в данном примере), а оригинал удаляется.