A file archiver with high compression ratio.

# To archive a file or directory:
7z a <archived.7z> <path/to/file_or_directory>

# To encrypt an existing archive (including headers):
7z a <encrypted.7z> -p<password> -mhe=on <archived.7z>

# To extract an existing 7z file with original directory structure:
7z x <archived.7z>

# To extract an archive with user-defined output path:
7z x <archived.7z> -o<path/to/output>

# To extract an archive to stdout:
7z x <archived.7z> -so

# To archive using a specific archive type:
7z a -t<zip|gzip|bzip2|tar> <archived.7z> <path/to/file_or_directory>

# To list available archive types:
7z i

# To list the contents of an archive file:
7z l <archived.7z>

# ---

#
# A couple bash 7z helper utils
#

function 7zcompress()
{
    if [ -z "$1" ]; then
        echo 'Usage: 7zcompress <path>'
        echo ''
        echo '       Compress the specified path with 7-Zip and create an archive'
        echo '       file in the working directory using the path BASENAME(1);'
        echo '       e.g.: <path_basename>.7z'
    else
        local archive_name
        archive_name="$(/usr/bin/basename "${1}").7z"
        /usr/local/bin/7z a "${archive_name}" "${1}"
    fi
}

function 7zextract()
{
    if [ -z "$1" ]; then
        echo 'Usage: 7zextract <archive.7z>'
        echo ''
        echo '       Extract the specified 7-Zip archive file in the working directory,'
        echo '       with original directory structure.'
    else
        /usr/local/bin/7z x "${1}"
    fi
}