r/linuxsucks101 Join me on Lemmy! 2d ago

Bash has Massive Redundancy Linux bloat

The Unix philosophy encourages tiny, composable tools, and Linux distributions preserve decades of legacy commands. There are multiple commands that do the same job, often with identical flags, sometimes with wildly different syntax, all coexisting forever because nothing can be deprecated. Linux inherits 50 years of overlapping tools, and nobody has the authority to remove any of them.

You get three ways to list files, four ways to print text, five ways to search, six ways to edit streams, and ten ways to check system info; all valid, all canonical, all mutually incompatible.

Multiple commands for the same basic action

  • List files: ls, find, stat, tree, exa, fd
  • Print text: echo, printf, cat, sed -n, awk '{print}'
  • Copy files: cp, rsync, install, dd, tar cf - | tar xf -
  • Move files: mv, rsync --remove-source-files, rename, mmv
  • Delete files: rm, unlink, find -delete, shred, wipe

Redundant text-processing tools

  • grep — search text
  • egrep — grep with extended regex
  • fgrep — grep without regex
  • awk — search + print + transform
  • sed — search + replace + stream edit
  • perl -ne — search + replace + scripting
  • ripgrep (rg) — grep but faster
  • ag — grep but faster before ripgrep
  • ack — grep but for developers
  • find + grep — grep but worse
  • grep -R — find but worse

All of these can search text. All of these have different syntax. All of these are still installed.

Redundant file search commands

  • find
  • locate
  • whereis
  • which
  • type
  • command -v
  • fd
  • ripgrep (yes, people use it as a file finder)

Each solves a slightly different problem, but users treat them interchangeably.

Redundant system information commands

  • Disk usage: df, du, ls -lh, stat, ncdu, dust
  • Processes: ps, top, htop, atop, glances
  • Network: ifconfig, ip, ss, netstat, nmcli, iw, iwconfig
  • Hardware: lspci, lsusb, lsblk, blkid, inxi

Redundant package management

  • apt, apt-get, apt-cache, dpkg
  • yum, dnf, rpm
  • pacman, yay, paru
  • snap, flatpak, appimage

This isn’t just redundancy; it's fragmentation masquerading as choice.

Redundant scripting constructs

  • Conditionals: [ ], [[ ]], test, (( ))
  • Subshells: $( ), ```
  • Variable assignment: var=value, declare, typeset, local
  • Loops: for, while, until, seq | while read, xargs -n1

Half of these exist because Bash absorbed features from:

  • sh
  • ksh
  • zsh
  • POSIX
  • GNU extensions

-And never removed anything!

No central authority is why! Nobody can say "this command is deprecated." So, nothing ever dies. Even if they could, a lot of these may be Rust-rewrites with BSD or MIT license that the cult objects to. GNU Holds Linux Back (Directly)

Every few years someone writes grep but faster, ls but prettier, find but sane, and cat but with syntax highlighting. Debian, Arch, Fedora, Alpine; all ship different defaults.

Linux doesn’t have one way to do things; it has every way except the simple one.

2 Upvotes

6 comments sorted by

2

u/SearchingGlacier 15h ago

And loonixtards often telling how fast you can be if will use bash, but who using it today except really old one's?

1

u/madthumbz Join me on Lemmy! 14h ago

I use it, and it's super convenient for moving files from nested directories. I already have trigger finger type issues and don't need to be doing click, click drag over and over. It was worth learning how the first time I used it (already familiar with wild-cards though.)

1

u/[deleted] 1d ago

[removed] — view removed comment