Verzeichnis wechseln ohne CD einzutippen?


17

Ist es möglich, Bash Change Directory in der Befehlszeile einfach durch Eingabe dieses Verzeichnisses ohne irgendwelche Befehle wie zu machen cd?

Zum Beispiel ist es möglich, anstatt dies zu schreiben:

$ cd /tmp

Ich möchte nur folgendes schreiben:

$ /tmp

Mit anderen Worten, wenn ich das Verzeichnis als Anwendung aufrufe, möchte ich dieses Verzeichnis als funktionierendes Verzeichnis festlegen.


9
Muss es heftig sein? zsh schafft das ( autocd)
Michael Mrozek

1
Nein, nein, nein, ich brauche eine Lösung in bash =) Das ist die Hauptanforderung, da es in einigen wissenschaftlichen Einrichtungen im kaltkalten Russland Relikte gibt, die nur bash als Skriptsprache haben;)
Vladimir

Die Menge an Eingaben, die durch das Nichttippen von "cd" gespeichert wird, wird wahrscheinlich dadurch ausgeglichen, dass für Pfade keine intelligente Standard-Autovervollständigung vorhanden ist. Auch diese Methode zum Ändern von Verzeichnissen, so oft man Verzeichnisse ändert, ist ein wenig beängstigend, da es sehr wahrscheinlich wird, dass versehentlich ein (potenziell bösartiges) Programm (das Sie für ein Verzeichnis halten) ausgeführt wird.
Michael

Es funktioniert für mich in ZSH
ishidex2

Antworten:


36

In Bash gibt es auch autocdOption. Sie können es aktivieren, indem Sie Folgendes verwenden shopt -s autocd:

pbm@tauri ~ $ shopt -s autocd
pbm@tauri ~ $ django # Now just type this
cd ./django    <- it's done automatically
pbm@tauri ~/django $

2
Mein neues Lieblingsfeature in Bash 4 für die interaktive Verwendung. (Für Skripte ist es **.) Leider ist es nicht in älteren Versionen.
Gilles 'SO - hör auf, böse zu sein'

0

Das würde ich mir vorstellen. Ubuntu verfügt über einen Catch-All-Mechanismus. Wenn Sie einen Befehl ausführen, der sich nicht auf dem System befindet, heißt es manchmal:

Kein Befehl 'foo' gefunden Meinten Sie: ...

Ich wette, Sie können alles hijacken und prüfen, ob es ein Verzeichnis gibt. Es lohnt sich wahrscheinlich, eine weitere Frage zu stellen.

BEARBEITEN: Gefunden: https://wiki.ubuntu.com/CommandNotFoundMagic


Ja, das ist, was man naiv erwarten würde - allerdings ist bash schlauer als wir und ruft nicht einmal command_not_found_handle für Verzeichnisse auf :(
Thomas Themel

Nach einigen Recherchen habe ich einen kleinen Patch gefunden ( mail-archive.com/bug-bash@gnu.org/msg06761.html ), der das Problem beheben könnte. Leider ist dieser Patch inoffiziell, sodass er nicht mit einer mit Ubuntu gelieferten Standardversion von Bash verwendet werden kann.
Vladimir
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.