3 ms·
> that nobody can ever remember These have gone a long way for me: tar xzf <in> eXtract Zipped File tar czf <out> <in> Create Zipped File Anything
by elteto 4y ago
> that nobody can ever remember
These have gone a long way for me:
tar xzf <in> eXtract Zipped File
tar czf <out> <in> Create Zipped File
Anything more complicated and I have to google.
- aendruk 4y agoNo need for the mnemonic device when you can literally type “--extract --gzip --file”, which reads as a sentence and has no trouble adapting to --xz or --zstd.
- Macha 4y agoThe `-z` on extract is not needed on basically most modern tar implementations (OpenBSD's is I believe the one outlier). tar -xf foo.tar.gz (or .xz, .bz2, .zst, etc.) will work, auto detect the archive type and extract.
- yourad_io 4y agoOh this is great, I remember z for gzip but always have to look up J vs j for bzip2/xz
- cb321 4y agoWith https://github.com/c-blake/nio/blob/main/utils/catz.nim https://github.com/c-blake/nio/blob/main/utils/catz.nim you can get similar format agnostic decoding/decompression not just in tar but in any pipeline context based on magic numbers, not filename extensions and even doing the copy loop needed for unseekable inputs to replace the early read -- e.g. cat foo.gz|catz|less works..
- 1vuio0pswjnm7 4y agoOpenBSD, which is a fork of NetBSD, is not the only "outlier".^1 For many years, NetBSD tar has autodetected bzip2 compression. tar xzf 1.tar.bz2 will work on gzip as well as bzip2. Whereas GNU tar still requires "j" instead^2 tar xjf 1.tar.bz2 1. For example, FreeBSD or MacOS tar is BSD tar. It will autodetect bzip2 compression. 2. The GNU tar included with VoidLinux still requires z or j. The pax(1) utility is the POSIX solution to these incompatibilities.
- Macha 4y agoVoid Linux appears to include GNU tar 1.34 The following should work, it worked on my Arch Linux install (but note that auto detection is not a "new" feature to GNU tar, I've been using it for at least 5 years) echo "Hello" > foo.txt tar cjf foo.tar.bz2 foo.txt rm foo.txt tar xf foo.tar.bz2 cat foo.txt and produce "Hello" To be clear, I'm not saying the following should work tar xzf foo.tar.bz2 What should work is: tar xf foo.tar.bz2 And for proof this is GNU tar $ tar --version tar (GNU tar) 1.34 Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason.
- 1vuio0pswjnm7 4y agoIf I have a script I want to work on both BSD and Linux, and I do want to rely on uname, I usually do something like bzip2 -dc 1.tar.bz2|tar xf -