¿Cómo obtengo la extensión de archivo de bash? Esto es lo que probé:
filename=`basename $filepath`
fileext=${filename##*.}
Al hacerlo, puedo obtener una extensión de bz2
la ruta /dir/subdir/file.bz2
, pero tengo un problema con la ruta /dir/subdir/file-1.0.tar.bz2
.
Preferiría una solución usando solo bash sin programas externos si es posible.
Para aclarar mi pregunta, estaba creando un script bash para extraer cualquier archivo dado con un solo comando de extract path_to_file
. La secuencia de comandos determina cómo extraer el archivo al ver su tipo de compresión o archivo, que podría ser .tar.gz, .gz, .bz2, etc. Creo que esto debería implicar la manipulación de cadenas, por ejemplo, si obtengo la extensión, .gz
entonces debe verificar si tiene la cadena .tar
antes .gz
; de ser así, la extensión debería ser .tar.gz
.
.tar.bz2