ahh

~$ which cat
  • HamsterRage@lemmy.ca
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    For the past 30 years or so, my brain always tells me to type “last” instead of “tail”. This usually results in some kind of “Permission denied” message that confuses me for a few seconds.

  • Dyskolos@lemmy.zip
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    I was today’s years old to finally notice the cat-head-tail thing…

    But it also just recently dawned upon me why pacman has those weird “c” as progress indicators…

    I’m not a smart man…

  • dan@upvote.au
    link
    fedilink
    arrow-up
    1
    ·
    3 days ago

    cat is misunderstood a lot. The purpose of cat is to combine multiple files together (it’s literally short for “concatenate”), like cat *.log to combine all log files together.

    If you’re just using it for a single file, then you should just redirect the file to stdin. These two command lines behave similarly:

    cat foo.txt | some-command
    
    some-command < foo.txt
    

    For head, tail, grep and some other commands, you can just pass in the file name directly as an argument (e.g. grep whatever foo.txt).

    • lokalhorst@feddit.org
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      3 days ago

      If I just want to look at the file, is there a better way than cat foo.txt? I guess I can’t just do < foo.txt

      • dan@upvote.au
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        2 days ago

        Admittedly I still use cat for this.

        This also works too, but it’s more verbose:

        echo "$(<foo.txt)"
        

        It’s mentioned in the Bash man pages:

        The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).

        EDIT: I was just informed that simply <foo.txt works too.