Linux Compression Humanized
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

150 lines
2.8 KiB

#!/bin/bash
VERSION=0.1r8
DEST=$1
shift 1
ORIG=$@
function decompressor()
{
case $DEST in
*.tar)
tar -xvf $DEST
;;
*.tar.gz | *.tgz)
tar -xzvf $DEST
;;
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2)
tar xjf $DEST
;;
*.tar.xz | *.txz)
tar -xf $DEST
;;
*.bz2)
bzip2 -d $DEST
;;
*.gz)
gzip -d $DEST
;;
*.zip)
unzip $DEST
;;
*.7z)
7za e $DEST
;;
*)
echo "Extension not found."
echo "For more information run 'lch --help'"
echo ""
;;
esac
echo ""
echo "Done"
exit 0
}
function compressor()
{
case $DEST in
*.tar)
tar -cvf $DEST $ORIG
;;
*.tar.gz | *.tgz)
tar -czvf $DEST $ORIG
;;
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2)
tar -c $ORIG | bzip2 > $DEST
;;
*.tar.xz | *.txz)
tar -cJf $DEST $ORIG
;;
*.bz2)
bzip2 -c $ORIG > $DEST
;;
*.gz)
gzip -c $ORIG > $DEST
;;
*.zip)
zip -r $DEST $ORIG
;;
*.7z)
7za a $DEST $ORIG
;;
*)
echo "Extension not found."
echo "For more information run 'lch --help'"
echo ""
;;
esac
echo ""
echo "Done"
exit 0
}
function help()
{
echo ""
echo "Help:"
echo "-----"
echo ""
echo "lch [-h] [-v] [FILE [FILE]]"
echo ""
echo "Examples:"
echo "$ lch -h -This help"
echo "$ lch -v -print version"
echo "$ lch file.zip /home/file -Compress"
echo "$ lch file.zip -Decompress"
echo ""
echo "Supported extensions:"
echo "- tar"
echo "- tar.gz"
echo "- tar.bz2"
echo "- tar.xz"
echo "- bz2"
echo "- tgz"
echo "- gz"
echo "- zip"
echo "- 7z"
echo ""
echo "Run 'man lch' for more info."
echo ""
}
if [ "$DEST" = "--help" ] || [ "$DEST" = "-h" ]
then
help
exit 0
fi
if [ "$DEST" = "--version" ] || [ "$DEST" = "-v" ]
then
echo "Linux Compression Humanized $VERSION"
exit 0
else
echo ""
echo "lch $VERSION"
echo "---------"
echo ""
fi
if [ -z "$DEST" ]
then
echo "Wrong arguments"
echo ""
help
exit 1
else
if [ -n "$ORIG" ]
then
echo "Compressor:"
echo "-----------"
echo ""
compressor $DEST $ORIG
else
echo "Decompressor:"
echo "-------------"
echo ""
decompressor $DEST
fi
fi