README.md
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.