Ich habe mich gefragt, ob es in der Linux-Shell eine Möglichkeit gibt, den ersten eindeutigen Teil eines Datei- oder Verzeichnisnamens einzugeben und dann "~" oder "..." hinzuzufügen und so das Schreiben des gesamten Dateinamens zu vermeiden.
Wenn ich zum BeispielCDzum Verzeichnis
example-program-source-0.11.229-dev
Anstatt zu schreiben
cd example-program-source-0.11.229-dev
Nur so etwas zu schreiben
cd example-program...
Oder
cd example-program~
Ich denke, dass so etwas in die Shell integriert sein sollte, aber ich weiß nicht, wonach ich genau suchen soll.
Antwort1
Die meisten Shells unterstützen die sogenannte „Tab-Vervollständigung“. Geben Sie einfach den eindeutigen Teil des Dateinamens ein und drücken Sie dann Ihre TabTaste. Die Shell sollte den Rest des Dateinamens automatisch für Sie vervollständigen. Wenn es immer noch mehrere Dateien gibt, die mit dem übereinstimmen, was Sie bisher eingegeben haben, durchläuft die Shell entweder die übereinstimmenden Dateien, wenn Sie drücken Tab, oder druckt eine Liste aller übereinstimmenden Dateien aus, wenn Sie doppelt drücken Tab, je nach Konfiguration. Bash druckt standardmäßig eine Liste aus, wenn Sie Tabzweimal tippen.
Antwort2
Sie können *
als Platzhalter verwenden:
cd example-program*
Beachten Sie, dass sich dies ausdehnt aufalledie Dateien, die dem Platzhalter entsprechen. In Ihrem Fall können Sie ihn nur verwenden, wenn nur ein Pfad mit beginnt example-program
. Wenn mehrere Verzeichnisse mit dem Präfix vorhanden sind, würde der Befehl beispielsweise wie folgt erweitert:
cd example-program-source-0.11.229-dev example-program-other example-program.txt
Dies kann nützlich sein, wenn Sie tatsächlichwollenum mit mehreren Dateien zu arbeiten, beispielsweise wenn Sie den Inhalt aller .log
Dateien in einem Ordner anzeigen möchten:
cat *.log