Comment puis-je obtenir l'extension de fichier à partir de bash? Voici ce que j'ai essayé:
filename=`basename $filepath`
fileext=${filename##*.}
En faisant cela, je peux obtenir une extension du bz2
chemin /dir/subdir/file.bz2
, mais j'ai un problème avec le chemin /dir/subdir/file-1.0.tar.bz2
.
Je préférerais une solution utilisant uniquement bash sans programmes externes si cela est possible.
Pour que ma question soit claire, je créais un script bash pour extraire n’importe quelle archive donnée à l’aide d’une seule commande extract path_to_file
. Comment extraire le fichier est déterminé par le script en voyant sa compression ou le type d' archivage, qui pourrait être tar.gz, .gz, .bz2 etc. Je pense que cela devrait impliquer la manipulation de chaînes, par exemple , si je reçois l'extension .gz
alors je devrait vérifier si elle contient la chaîne .tar
avant .gz
- si oui, l’extension devrait l'être .tar.gz
.
.tar.bz2