bashからファイル拡張子を取得するにはどうすればよいですか?ここに私が試したものがあります:
filename=`basename $filepath`
fileext=${filename##*.}
それをすることでbz2
、パスからの拡張を取得できます/dir/subdir/file.bz2
が、パスに問題があります/dir/subdir/file-1.0.tar.bz2
。
可能であれば、外部プログラムなしでbashのみを使用するソリューションをお勧めします。
質問を明確にするために、bashスクリプトを作成して、指定されたアーカイブを1つのコマンドだけで抽出しましたextract path_to_file
。その圧縮を見たりタイプをアーカイブすることにより、スクリプトによって決定されますどのようにファイルを抽出するために、それは私が拡張子を取得する場合.bz2などI例えば、これは文字列操作を関与させるべきだと思う、.gzを、.tar.gzの可能性があり.gz
、私はその後、.tar
前に文字列があるかどうかを確認する必要があります.gz
—その場合、拡張子はである必要があります.tar.gz
。
.tar.bz2