Parent directory

README.md

3222 bytes

universalarchive plugin

The universalarchive plugin provides a convenient command-line interface for archiving files and directories using a wide variety of compression formats - without having to remember the exact syntax for each tool.

To enable it, add universalarchive to the plugins array in your .zshrc file:

plugins=(... universalarchive)

Features

  • Compress files and directories using a simple, unified command: ua
  • Automatically detects file/directory names to generate appropriate output names
  • Supports fallback naming if an output file already exists
  • Works with many common and advanced compression formats
  • Designed for simplicity and quick use in the terminal

Usage

Basic command format:

ua <format> <files...>
  • <format>: the archive format to use (e.g., zip, tar.gz, xz, 7z, etc.)
  • <files...>: one or more files or directories to compress

Examples:

Compresses notes.txt and images into notes.zip

ua zip notes.txt images/

Creates myproject.tar.gz

ua tar.gz myproject/

Compresses all .log files into current_folder.xz

ua xz *.log

The plugin will generate a default archive filename based on the input:

  • For a file, the output is derived from the file name without its extension.
  • For a directory, it uses the directory name.
  • For multiple files, it uses the name of the common parent directory.

If the output file already exists, a unique filename is generated using mktemp.

Supported Archive Formats

| Format | Description | Tool Used | |:-----------------|:-------------------------------|:-----------------| | 7z | 7zip archive | 7z | | bz2 | Bzip2-compressed file | bzip2 | | gz | Gzip-compressed file | gzip | | lzma | LZMA-compressed file | lzma | | lzo | LZO-compressed file | lzop | | rar | WinRAR archive | rar | | tar | Uncompressed tarball | tar | | tbz,tar.bz2 | Tarball compressed with Bzip2 | tar + bzip2 | | tgz,tar.gz | Tarball compressed with Gzip | tar + gzip | | tlz,tar.lzma | Tarball compressed with LZMA | tar + lzma | | txz,tar.xz | Tarball compressed with LZMA2 | tar + xz | | tZ,tar.Z | Tarball compressed with LZW | tar + compress | | xz | XZ-compressed file | xz | | Z | LZW-compressed file | compress | | zip | Standard Zip archive | zip | | zst | Zstandard-compressed file | zstd |

Note: Some formats may require specific tools to be installed on your system (e.g. 7z, rar, lzop, zstd). Make sure these tools are available in your $PATH.

Auto-Completion

The plugin provides tab-completion for supported formats and input files. Type ua <TAB> to see available formats, and ua <format> <TAB> to browse files.