Skip Navigation
158 comments
  • No no it's this:

    1. Decide you've gotta use tar.
    2. man tar
    3. Guess-and-check the flags until it seems to work.
    4. Immediately forget the flags.
    • That was my case until I discovered that GNU tar has got a pretty decent online manual - it's way better written than the manpage. I rarely forget the options nowadays even though I dont' use tar that frequently.

    • As much as I also do step 4, to be honest I don't see people use man anywhere near as much as they should. Whenever faced with the question "what are the arguments for doing xyz", I immediately man it and just tell them - Practically everywhere you can execute a given command, you can also read full and comprehensive documentation, just look!

  • Those are straightforward; it's the remaining 900 options that are confusing. I always need to look up --excludes and always get --directory wrong, somehow.

  • Or just use long-forms like

     undefined
        
    tar --create --file pics.tar ./pics
    
    
      

    instead of

     undefined
        
    tar -cf pics.tar ./pics
    
    
      

    or

     undefined
        
    tar --extract --file pics.tar
    instead of
    
    
      

    tar -xf pics.tar

     undefined
        
    
    which is honestly way easier to remember... \^\^
      
  • Yes, that's all very well, but you'll still need to find that image the next time you want to use it.

  • As a mnemonic I usually read the "f" as "fucking":

    • tar, compress fucking pics.tar.gz with junk from ./pics
    • tar, extract fucking pics.tar.gz

    That's only for scripting though. Most of the time I simply right-click the directory or archive, and let Engrampa deal with it.

  • My tar command is tldr tar then ctrl + c / ctrl + v

  • I would also recommend -v for verbose and -z when compressing for gzip

    What does --auto-compress do?

    • Auto compress will use gzip if the file ends with .gz, bzip if it ends with .bz, and so on without mentioning -z

  • Damn, I'm using the "tape archiver" (this is what tar means) since I installed HPUX8 in the 90s, from tape, yes...

  • So a serious question from someone who can't remember console commands ever despite using them constantly.

    Why are so many linux CLI commands set up with defaults that no one ever uses? Like if you pretty much always need -f, -v is often used, and --auto-compress is needed to recognize type by extension. Why aren't those the defaults to just using tar?

    A lot of applications I find are like this too, they don't come with defaults that work or that anyone would ever use.

    • One reason to keep in mind is backwards compatibility and the expectancy that every Linux system has the same basic tools that work the same.

      Imagine you have a script running on your server that uses a command with or without specific arguments. If the command (say tar) changes its default parameters this could lead to a lot of nasty side effects from crashes to lost or mangled data. Besides the headache of debugging that, even if you knew about the change beforehand it's still a lot effort to track down every piece of code that makes use of that command and rewrite it.

      That's why programs and interfaces usually add new options over time but are mostly hesitant to remove old ones. And if they do they'll usually warn the others beforehand that a feature will deprecate while allowing for a transitional period.

      One way to solve this conundrum is to simply introduce new commands that offer new features and a more streamlined approach that can replace the older ones in time. Yet a distribution can still ship the older ones alongside the newer ones just in case they are needed.

      Looking at pagers (programs that break up long streams of text into multiple pages that you can read one at a time) as a simple example you'll find that more is an older pager program while the newer less offers an even better experience ("less is more", ¿get the joke?). Both come pre-installed as core tools on many distributions. Finally an even more modern alternative is most, another pager with even better functionality, but you'll need to install that one yourself.

  • Nowaday I have ChatGPT spew me command. I usually do a quick validation before running. Nevertheless, most of simple operations are correct so I don't need to.

    I then note the command to my persional gist cheatsheet. Next time, since the command is "cached", I'll be able to be productive quicker.

    So much better than googling.

  • That looks really cool. And finally a guide that knows -z is not necessary all the time.

  • daily-standup.png eh... :)

    Who is taking pics of the standup.. :)

158 comments