47 lines
944 B
Bash
47 lines
944 B
Bash
function extract () {
|
|
file_type=$(file -b ${1})
|
|
file_type=${file_type%%,*}
|
|
|
|
if [ -f ${1} ] ; then
|
|
case ${file_type} in
|
|
"bzip2 compressed data")
|
|
tar xjvf "${1}"
|
|
;;
|
|
"gzip compressed data")
|
|
gunzip "${1}"
|
|
;;
|
|
"XZ compressed data")
|
|
xz -d "${1}"
|
|
;;
|
|
"bzip2 compressed data")
|
|
bzip2 -d "${1}"
|
|
;;
|
|
"RAR archive data")
|
|
unrar2dir "${1}"
|
|
;;
|
|
"POSIX tar archive (GNU)")
|
|
tar xf "${1}"
|
|
;;
|
|
"Zip archive data")
|
|
unzip "${1}"
|
|
;;
|
|
"compress'd data 16 bits")
|
|
uncompress "${1}"
|
|
;;
|
|
"7-zip archive data")
|
|
7z x "${1}"
|
|
;;
|
|
"Zstandard compressed data"*)
|
|
zstd -d "${1}"
|
|
;;
|
|
*)
|
|
echo "'$1' cannot be extracted via extract()"
|
|
;;
|
|
esac
|
|
else
|
|
echo "'${1}' not found."
|
|
exit 1
|
|
fi
|
|
}
|
|
|