Wie bekomme ich die Dateierweiterung von Bash? Folgendes habe ich versucht:
filename=`basename $filepath`
fileext=${filename##*.}
Auf diese Weise kann ich eine Erweiterung des bz2
Pfads erhalten /dir/subdir/file.bz2
, aber ich habe ein Problem mit dem Pfad /dir/subdir/file-1.0.tar.bz2
.
Ich würde eine Lösung vorziehen, die nur Bash ohne externe Programme verwendet, wenn es möglich ist.
Um meine Frage zu klären, habe ich ein Bash-Skript erstellt, um ein bestimmtes Archiv mit einem einzigen Befehl von zu extrahieren extract path_to_file
. Wie die Datei extrahiert wird, bestimmt das Skript anhand des Komprimierungs- oder Archivierungstyps, der .tar.gz, .gz, .bz2 usw. sein kann. Ich denke, dies sollte Zeichenfolgenmanipulation beinhalten, z. B. wenn ich die Erweiterung bekomme, .gz
dann habe ich sollte .tar
vorher prüfen, ob es die Zeichenfolge hat .gz
- wenn ja, sollte die Erweiterung sein .tar.gz
.
.tar.bz2