How to selective extractor vs unzip / 7z cli / winrar
- Step 1Decide on format coverage — If your archive is a
.7zor.rarand you only haveunzip/taron the machine, the browser tool reads it via libarchive WASM with nothing to install. A full 7-Zip/WinRAR install also reads them — but requires the install. - Step 2Decide on output format — CLIs extract to loose files in their native structure. Selective Extractor always emits a ZIP of the matches. If you specifically want loose files or TAR.GZ output, a CLI (or a follow-up Archive Format Converter run) is the better fit.
- Step 3Decide on scale — For thousands of archives or files over 2 GB, a scripted CLI wins — it has no browser-memory ceiling and integrates with shell pipes and cron. The browser tool caps at 2 GB and reads one archive per run.
- Step 4Decide on privacy posture — Both a local CLI and the browser tool keep data on your machine. The browser path additionally writes no temp files and needs no elevated permissions — useful on shared or audited hosts.
- Step 5Match the glob to the engine — Shell globbing depends on quoting and shell. Here the pattern is matched by the tool itself:
**for depth,*within a segment,?for one char. Test it once and the behaviour is identical everywhere. - Step 6Pick the right JAD sibling if needed — Need everything, not a subset? Multi-Format Extractor. Need to diff two archives like
diff -r? Archive Diff. Need a listing instead of files? File Listing Generator.
Selective extraction: browser tool vs the common CLIs
How each tool expresses 'extract only the matching files'. Browser column reflects what the JAD tool actually does.
| Capability | JAD Selective Extractor | unzip | 7z CLI | tar / WinRAR |
|---|---|---|---|---|
| Select by pattern | One glob (*, **, ?) | unzip a.zip '*.log' | 7z e a.7z -ir!src/*.ts | tar --wildcards / WinRAR mask |
| Reads 7Z / RAR | Yes (libarchive WASM, read-only) | No | Yes (7z) / RAR read only | WinRAR yes; tar no |
| Output of the matches | Always a ZIP | Loose files | Loose files | Loose files / native |
| Install required | None (browser) | Usually preinstalled | p7zip / 7-Zip | tar preinstalled / WinRAR install |
| Decrypt encrypted input | ZIP only (password field) | ZIP (ZipCrypto) | 7Z/ZIP with -p | RAR/ZIP with password |
| Max size | 2 GB (paid tiers) | OS/filesystem limited | OS limited | OS limited |
When to pick which
Decision matrix by job shape.
| Your situation | Best choice | Why |
|---|---|---|
| Confidential archive on a shared box, no install rights | Selective Extractor | No upload, no temp files, no admin rights |
A .7z/.rar but only unzip is installed | Selective Extractor | Reads both via bundled libarchive WASM |
| Need loose files or TAR.GZ output | CLI | Browser tool always outputs ZIP |
| Thousands of archives in a pipeline | CLI | Scriptable, no browser-memory ceiling |
| Archive over 2 GB | CLI | Browser tool caps at 2 GB on paid tiers |
| Encrypted 7Z/RAR you must open | CLI (7z -p / WinRAR) | Browser password field only handles ZIPs |
Cookbook
Equivalent commands and what each one actually returns, so you can map your CLI muscle-memory to the browser tool and back.
Extract logs: unzip vs Selective Extractor
Both keep only the logs. unzip writes loose files; the browser tool returns a ZIP of them with paths intact.
CLI: unzip release.zip '*.log' -d ./logs → loose .log files under ./logs Browser: Pattern: *.log → release-filtered.zip (37 matched entries, paths preserved)
A 7z you can't open without 7-Zip
Plain unzip can't read 7Z. The browser tool reads it via libarchive WASM, no install.
CLI on a box with only unzip: unzip vendor.7z → 'End-of-central-directory signature not found' (fails) Browser: drop vendor.7z, Pattern: config/** → vendor-filtered.zip (config subtree as ZIP)
Subtree extraction: 7z CLI vs glob
The 7z include-recursive flag and a ** glob express the same intent.
CLI: 7z e project.7z -ir!src/*.ts -osrc-only Browser: Pattern: src/**/*.ts → project-filtered.zip with src/**/*.ts paths kept
Why output format differs
A CLI leaves files where the archive said; the browser tool re-zips. If you need TAR.GZ, chain a converter.
Browser: data.tar.gz + Pattern *.csv → data-filtered.zip To get TAR.GZ back: feed data-filtered.zip into Archive Format Converter /archive-tools/archive-format-converter
Encrypted input — where the CLI wins
The browser password field only decrypts ZIPs. For an encrypted 7Z, the CLI is required.
Encrypted ZIP (works in browser): Pattern *.pdf + password •••• → filtered ZIP Encrypted 7Z (browser can't): 7z e secret.7z -ir!*.pdf -p'mypass' ← use the CLI
Edge cases and what actually happens
Shell glob vs tool glob differ
ExpectedIn a shell, an unquoted *.log may be expanded by the shell before the archiver sees it, producing surprising results. The browser tool matches the pattern itself with documented rules (*, **, ?), so there is no shell-expansion ambiguity.
CLI keeps native format, browser re-zips
By designunzip/7z/tar drop loose files (or keep the native container); Selective Extractor always returns a ZIP of the matches. This is the single biggest behavioural difference to remember.
Archive over 2 GB
Limit: use CLIEven Developer tier caps at 2 GB because the archive is processed in browser memory. A multi-GB archive should be handled by a CLI. For building (not reading) very large ZIPs from local files, Streaming ZIP Builder avoids the RAM spike — but that is a different job.
Encrypted 7Z/RAR
Not supported in browserThe browser tool's password field feeds only the ZIP reader. Encrypted 7Z/RAR must be opened with 7-Zip/WinRAR. This is the clearest case where a CLI is required.
Batch of many archives
Limit: use CLISelective Extractor reads one archive per run. A shell for loop over hundreds of archives is far more efficient. For batch extraction within JAD, Batch Extraction Manager accepts multiple inputs.
Multiple patterns in one pass
LimitCLIs let you pass several include masks at once; the browser tool takes one glob per run. Run twice and merge with Archive Merger, or widen the glob and accept a few extra files.
Timestamps on output
DiffersCLIs preserve original mtimes; the browser tool's re-zip does not guarantee reproducible timestamps. For deterministic output, normalize with Timestamp Normalizer after extraction.
Wrong extension on the input
Handled (both)Both read by content: a mislabelled .zip that is really RAR is detected correctly. The browser tool uses magic-byte detection; if it matches nothing it reports Could not detect or extract archive format.
Frequently asked questions
Is the browser tool a drop-in replacement for unzip?
For reading and partially extracting a single archive under 2 GB, largely yes — and it reads 7Z/RAR that plain unzip can't. It is not a replacement when you need loose-file output, scripting, batch loops, encrypted-7Z support, or archives over 2 GB.
Why does it always output a ZIP?
The tool repackages the matched entries with fflate into one ZIP so a single click yields a single download with the folder structure preserved. CLIs instead write loose files in the native layout.
Can it read 7Z and RAR like 7-Zip / WinRAR?
It can read them via a bundled libarchive WASM module — no 7-Zip or WinRAR install required. It cannot, however, decrypt password-protected 7Z/RAR; that still needs a desktop CLI.
Is the browser tool slower than a CLI?
For files under ~100 MB, fflate is fast enough that the difference is negligible. On multi-hundred-MB archives a native CLI is typically faster and avoids browser-memory pressure.
Which is more private?
Both keep data local. The browser path additionally avoids writing temp files to disk and needs no admin rights, which can matter on shared or audited machines.
Does the output open in WinRAR / 7-Zip / macOS?
Yes. The output is a standard ZIP with no proprietary metadata, so any archiver opens it and the original paths are intact.
What about extracting everything, not just a subset?
Use Multi-Format Extractor to expand the whole archive, or set the pattern to the default * here to repackage every entry into a ZIP.
Can I script the browser tool in CI?
Not yet — there is no public API. For CI today, use a CLI (unzip/7z/tar) or fflate/libarchive bindings in Node. A JAD programmatic API is on the roadmap.
How do I match the same files a shell glob would?
Quote your shell glob to stop the shell expanding it, then translate to the tool's syntax: ** for any depth, * within a segment, ? for one character. Slash-free patterns also match basenames anywhere.
What's the size ceiling versus a CLI?
Browser tool: 50 MB free, 500 MB Pro, 2 GB Pro-media/Developer. A CLI is limited only by the OS and filesystem, so it wins decisively above 2 GB.
Can I diff two archives like diff -r?
Yes, but with a different tool: Archive Diff compares two archives entry-by-entry, which is the browser equivalent of diffing two extracted trees.
Does it preserve file permissions like tar?
No. ZIP does not carry Unix permission bits the way tar does, and the re-zip drops them. If POSIX permissions matter, extract with tar on a real filesystem.
Privacy first
Every JAD Archive tool runs entirely in your browser using fflate, @zip.js/zip.js, and the libarchive WASM bridge. Your archives never leave your device — verified by zero outbound network requests during processing.