Como obtenho a extensão de arquivo do bash? Aqui está o que eu tentei:
filename=`basename $filepath`
fileext=${filename##*.}
Ao fazer isso, posso obter a extensão do bz2
caminho /dir/subdir/file.bz2
, mas tenho um problema com o caminho /dir/subdir/file-1.0.tar.bz2
.
Eu preferiria uma solução usando apenas o bash sem programas externos, se possível.
Para deixar minha pergunta clara, eu estava criando um script bash para extrair qualquer arquivo especificado apenas com um único comando de extract path_to_file
. Como extrair o arquivo é determinado pelo script vendo sua compressão ou arquivamento tipo, que poderia ser .tar.gz, .gz, .bz2 etc. Eu acho que isso deve envolver a manipulação de cadeia, por exemplo, se eu chegar a extensão .gz
então eu deve verificar se possui a string .tar
antes .gz
- se houver, a extensão deve estar .tar.gz
.
.tar.bz2