Ответ 1
Вы можете сделать это с помощью простого регулярного выражения, используя оператор =~
внутри теста [[...]]
:
if [[ $file =~ \.gz$ ]];
Это не даст вам правильного ответа, если расширение .tgz
, если вам это интересно. Но это легко исправить:
if [[ $file =~ \.t?gz$ ]];
Отсутствие котировок вокруг регулярного выражения является необходимым и важным. Вы можете процитировать $file
, но нет смысла.
Вероятно, лучше использовать утилиту file
:
$ file --mime-type something.gz
something.gz: application/x-gzip
Что-то вроде:
if file --mime-type "$file" | grep -q gzip$; then
echo "$file is gzipped"
else
echo "$file is not gzipped"
fi