I run a linux compat term that allows setting the tab size. Since most of my usage is using tabsize=2, I set the term's tabsize to such when it comes up. Programs that can display tabs in output like 'ls', 'diff', 'less(or more)', to name a few, have some type of "expand-tabs" or "-[tT]" option to expand tabs on output (or input to line up input columns). Ex: ls: -T, --tabsize=COLS assume tab stops at each COLS instead of 8 diff: -t, --expand-tabs expand tabs to spaces in output -T, --initial-tab make tabs line up by prepending a tab --tabsize=NUM tab stops every NUM (default 8) print columns (etc..). I propose 'du' gain a "-T" option like 'ls' to allow for formatted output: So instead of : 20K My layouts/linda-default.fcl 20K My layouts/new-default.fcl 0 My layouts/foo.fcl 2.2M autobackup/autobackup.20141103-042819.zip 2.3M autobackup/bak 12K configuration/Core.cfg 12K playlists/00000106.fpl 24K playlists/index.dat 2.1M pygrabber/libs 28K pygrabber/scripts 1.3M user-components/foo_AdvancedControls I could see: 20K My layouts/linda-default.fcl 20K My layouts/new-default.fcl 0 My layouts/foo.fcl 2.2M autobackup/autobackup.20141103-042819.zip 2.3M autobackup/bak 12K configuration/Core.cfg 12K playlists/00000106.fpl 24K playlists/index.dat 2.1M pygrabber/libs 28K pygrabber/scripts 1.3M user-components/foo_AdvancedControls ---- Two other readability examples from different programs follow and a description of the attachment. Of note, 'ls' defaults to explanding tabs to spaces, so it doesn't have the problem of variable expansion, but if one tells it to use '8 space/tab (example pruned from /tmp): 4.0K 0bPwr3N_7s 4.0K cyg2lin.env 4.0K prereqs.txt 4.0K 1 16K diff 4.0K rmdirs 4.0K 2 4.0K dirs 0 ssh-Y3YzuDAD5w/ 0 3173-f1.txt 4.0K do_diffs* 0 ssh-a9nNm0VQ2c/ 4.0K 5QXcX6apwV 4.0K done 0 ssh-oszB2InjXA/ 0 CPAN-Reporter-lib-1WVP/ 4.0K fZuwIWpHXO 0 ssh-pOlsxOkr0U/ 0 CPAN-Reporter-lib-wDln/ 4.0K files 0 ssh-vSPNXq8i3I/ 4.0K HUk8j_zP_d 4.0K fq22uj4fYU 0 t1 4.0K all 4.0K lnx.txt 0 veKj4PS/ 4.0K awstest.out 456K log 0 vq0XVTv/ 104K boot-cons.msg 4.0K lt.h 40K x.log 0 boot.msgs/ 4.0K meterlist 24K x.txt vs. ls' -CFhsT2: 4.0K 0bPwr3N_7s 4.0K cyg2lin.env 4.0K prereqs.txt 4.0K 1 16K diff 4.0K rmdirs 4.0K 2 4.0K dirs 0 ssh-Y3YzuDAD5w/ 0 3173-f1.txt 4.0K do_diffs* 0 ssh-a9nNm0VQ2c/ 4.0K 5QXcX6apwV 4.0K done 0 ssh-oszB2InjXA/ 0 CPAN-Reporter-lib-1WVP/ 4.0K fZuwIWpHXO 0 ssh-pOlsxOkr0U/ 0 CPAN-Reporter-lib-wDln/ 4.0K files 0 ssh-vSPNXq8i3I/ 4.0K HUk8j_zP_d 4.0K fq22uj4fYU 0 t1 4.0K all 4.0K lnx.txt 0 veKj4PS/ 4.0K awstest.out 456K log 0 vq0XVTv/ 104K boot-cons.msg 4.0K lt.h 40K x.log 0 boot.msgs/ 4.0K meterlist 24K x.txt ---- As a final short example -- something I use to print a shortened version of my current directory in my prompt: w/default -8 tabs in less: > less -x8 spwd #!/bin/bash cols() { declare size="$(stty size