Passen Sie die Tab-Vervollständigung in der Shell an

Dies kann einen besseren Namen haben als "Benutzerdefinierte Tab-Vervollständigung", aber hier ist das Szenario:

Wenn ich mich in der Befehlszeile befinde und einen Befehl eingebe, gefolgt von zweimal {TAB}, erhalte ich normalerweise eine Liste aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis. Zum Beispiel:

[user@host tmp]$ cat <TAB><TAB>
chromatron2.exe                  Fedora-16-i686-Live-Desktop.iso  isolate.py
favicon.ico                      foo.exe                          James_Gosling_Interview.mp3

Allerdings ist mir aufgefallen, dass mindestens ein Programm diese Liste irgendwie filtert:wine. Erwägen:

[user@host tmp]$ wine <TAB><TAB>
chromatron2.exe  foo.exe

Es filtert die Ergebnisse effektiv nach*.exe.

Ich denke, es könnte eine Art Wrapper-Skript sein, das für die Filterung verantwortlich istwhich undfile und es stellt sich herauswine ist kein Skript, sondern eine ausführbare Datei.

Nun, ich weiß nicht, ob dieser "Filter" irgendwie im Programm selbst kodiert ist oder auf andere Weise während der Standardweininstallation festgelegt wurde, daher bin ich mir nicht sicher, ob diese Frage besser für Stackoverflow oder Superuser geeignet ist Ich drücke die Daumen und werfe es hierher. Ich entschuldige mich, wenn ich falsch geraten habe. (Ich habe auch einige ähnliche Fragen geprüft, aber die meisten waren irrelevant oder erforderten die Bearbeitung der Shell-Konfiguration.)

Meine Frage ist also, wie wird diese "Filterung" durchgeführt? Danke im Voraus.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage