…aber wozu braucht man so viele greps?
$ compgen -c | grep grep | wc -l
69
$ _
Hmm, ob es in der Ausgabe von compgen wohl Dopplungen gibt?
$ compgen -c | nl | sort -k2 | grep grep | sed 10q
1332 bzegrep
5085 bzegrep
3010 bzfgrep
6763 bzfgrep
3817 bzgrep
7570 bzgrep
3054 degrep
6807 degrep
1761 dfgrep
5514 dfgrep
$ _
Und, wie viele greps habe ich wirklich?
$ compgen -c | grep grep | sort -u | wc -l
33
$ _
Schon etwas übersichtlicher.
Viele dieser greps sind dann kurze Skripten, die grep mit zusätzlichen Optionen aufrufen (man erkennt es an der Dateigröße), einige sind symbolische Links, einige sind Hardlinks (man erkennt es am @ beim ls -F). Hier eine Tabelle ohne Dopplungen:
$ for i in `compgen -c | grep grep`; do echo -ne "$i: "; ls -ishF `which $i`; done | column -t | sort -unk2 | nl
1 grep-dctrl: 20709639 52K /usr/bin/grep-dctrl*
2 lzegrep: 20710041 0 /usr/bin/lzegrep@
3 lzfgrep: 20710042 0 /usr/bin/lzfgrep@
4 lzgrep: 20710043 0 /usr/bin/lzgrep@
5 egrep: 20710253 4,0K /usr/bin/egrep*
6 fgrep: 20710257 4,0K /usr/bin/fgrep*
7 grep: 20710280 184K /usr/bin/grep*
8 rgrep: 20710407 4,0K /usr/bin/rgrep*
9 zipgrep: 20710858 4,0K /usr/bin/zipgrep*
10 grep-aptavail: 20711672 0 /usr/bin/grep-aptavail@
11 msggrep: 20714439 120K /usr/bin/msggrep*
12 bzgrep: 20715010 4,0K /usr/bin/bzgrep*
13 xzgrep: 20715392 12K /usr/bin/xzgrep*
14 ptargrep: 20715432 8,0K /usr/bin/ptargrep*
15 zstdgrep: 20716764 4,0K /usr/bin/zstdgrep*
16 grep-available: 20717025 0 /usr/bin/grep-available@
17 grep-debtags: 20717127 0 /usr/bin/grep-debtags@
18 grep-status: 20717191 0 /usr/bin/grep-status@
19 pgrep: 20717295 36K /usr/bin/pgrep*
20 dgrep: 20717352 4,0K /usr/bin/dgrep*
21 degrep: 20717640 0 /usr/bin/degrep@
22 bzegrep: 20719866 0 /usr/bin/bzegrep@
23 bzfgrep: 20719870 0 /usr/bin/bzfgrep@
24 dfgrep: 20720182 0 /usr/bin/dfgrep@
25 zegrep: 20720810 4,0K /usr/bin/zegrep*
26 zfgrep: 20720874 4,0K /usr/bin/zfgrep*
27 zgrep: 20720920 8,0K /usr/bin/zgrep*
28 dzegrep: 20721249 0 /usr/bin/dzegrep@
29 dzfgrep: 20721253 0 /usr/bin/dzfgrep@
30 dzgrep: 20722085 0 /usr/bin/dzgrep@
31 grepdiff: 20724261 0 /usr/bin/grepdiff@
32 xzegrep: 20743860 0 /usr/bin/xzegrep@
33 xzfgrep: 20743862 0 /usr/bin/xzfgrep@
$ _
Da sage mir niemand, dass unixoide Betrübssysteme frei von seltsamen Strokeleien seien, die man vermutlich am besten mit einem bis in die Siebziger Jahre zurückreichenden Geschichtsbuch erklären kann!