2026-07-16 05:09:18 +05:30

55 lines
1.0 KiB
Fish

function extract --description "Extract common archive formats"
if test (count $argv) -ne 1
echo "Usage: extract <archive>"
return 1
end
set -l file $argv[1]
if not test -f "$file"
echo "File not found: $file"
return 1
end
switch "$file"
case "*.tar.bz2" "*.tbz2"
tar -xjf "$file"
case "*.tar.gz" "*.tgz"
tar -xzf "$file"
case "*.tar.xz" "*.txz"
tar -xJf "$file"
case "*.tar.zst"
tar --zstd -xf "$file"
case "*.tar"
tar -xf "$file"
case "*.zip"
unzip "$file"
case "*.7z"
7z x "$file"
case "*.rar"
unrar x "$file"
case "*.gz"
gunzip "$file"
case "*.bz2"
bunzip2 "$file"
case "*.xz"
unxz "$file"
case "*.zst"
unzstd "$file"
case '*'
echo "Unsupported archive format."
return 1
end
end