cdを入力せずにディレクトリを変更しますか?


17

コマンドラインでbashにディレクトリを入力するだけで、次のようなコマンドなしでディレクトリを変更することは可能cdですか?

たとえば、これを書く代わりに可能です:

$ cd /tmp

私はこれだけを書きたいです:

$ /tmp

言い換えれば、ディレクトリをアプリケーションとして呼び出す場合、そのディレクトリを機能するディレクトリとして設定する必要があります。


9
それはbashである必要がありますか?zshはそれを行うことができます(autocd
マイケルMrozek

1
いいえ、いいえ、bashで解決策が必要です=)寒冷ロシアの一部の科学機関では、bashのみがスクリプト言語として残っている遺物があるため、これが主な要件です;)
ウラジミール

「cd」を入力しないことで節約される入力の量は、パスのインテリジェントなデフォルトのオートコンプリートがないことで相殺される可能性があります。また、このdirsを変更する方法は、しばしばdirsを変更するのと同じように、(潜在的に悪意のある)プログラム(ディレクトリと思われる)を誤って実行する可能性が非常に高いため、少し怖いです。
マイケル

ZSHで動作します
ishidex2

回答:


36

bashにはautocdオプションもあります。次を使用して有効にできます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
インタラクティブな使用のためのbash 4の私のお気に入りの新機能。(スクリプトについては、**です。)残念ながら、古いバージョンにはありません。
ジル「SO-悪であるのをやめる」

0

そう想像します。Ubuntuにはいくつかの包括的なメカニズムがあります。システム上にないコマンドを実行すると、次のように表示されることがあります。

コマンド 'foo'が見つかりませんでした:...

それが何であれハイジャックし、ディレクトリが指定されているかどうかを確認するためのチェックを追加できると思います。それをどうするかを尋ねる別の質問を投稿する価値があるでしょう。

編集:それを見つけました:https : //wiki.ubuntu.com/CommandNotFoundMagic


はい、それは単純に予想されることです-ただし、bashは私たちよりも賢く、ディレクトリのcommand_not_found_handleを呼び出すことさえありません:(
Thomas Themel

いくつかの調査の後、それを修正できる小さなパッチ(mail-archive.com/bug-bash@gnu.org/msg06761.html)を見つけました。残念ながら、このパッチは非公式であるため、ubuntuで提供されているbashのストックバージョンでは使用できません。
ウラジミール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.