mirror of
https://github.com/arcan1s/dotfiles.git
synced 2025-04-24 16:07:17 +00:00
51 lines
2.0 KiB
Bash
51 lines
2.0 KiB
Bash
# function to extract archives
|
|
# EXAMPLE: unpack file
|
|
unpack() {
|
|
if [[ -f $1 ]]; then
|
|
case $1 in
|
|
*.tar.bz2) tar xjfv $1 ;;
|
|
*.tar.gz) tar xzfv $1 ;;
|
|
*.tar.xz) tar xvJf $1 ;;
|
|
*.bz2) bunzip2 $1 ;;
|
|
*.gz) gunzip $1 ;;
|
|
*.rar) unrar x $1 ;;
|
|
*.tar) tar xf $1 ;;
|
|
*.tbz) tar xjvf $1 ;;
|
|
*.tbz2) tar xjf $1 ;;
|
|
*.tgz) tar xzf $1 ;;
|
|
*.zip) unzip $1 ;;
|
|
*.Z) uncompress $1 ;;
|
|
*.7z) 7z x $1 ;;
|
|
*) echo "I don't know how to extract '$1'" ;;
|
|
esac
|
|
else
|
|
case $1 in
|
|
*help) echo "Usage: unpack ARCHIVE_NAME" ;;
|
|
*) echo "'$1' is not a valid file" ;;
|
|
esac
|
|
fi
|
|
}
|
|
|
|
# function to create archives
|
|
# EXAMPLE: pack tar file
|
|
pack() {
|
|
if [ $1 ]; then
|
|
case $1 in
|
|
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
|
|
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
|
|
tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;;
|
|
bz2) bzip $2 ;;
|
|
gz) gzip -c -9 -n $2 > $2.gz ;;
|
|
tar) tar cpvf $2.tar $2 ;;
|
|
tbz) tar cjvf $2.tar.bz2 $2 ;;
|
|
tgz) tar czvf $2.tar.gz $2 ;;
|
|
zip) zip -r $2.zip $2 ;;
|
|
7z) 7z a $2.7z $2 ;;
|
|
*help) echo "Usage: pack TYPE FILES" ;;
|
|
*) echo "'$1' cannot be packed via pack()" ;;
|
|
esac
|
|
else
|
|
echo "'$1' is not a valid file"
|
|
fi
|
|
}
|