Mac OS X bashがルートディレクトリの末尾にスラッシュを常に追加するとは限らない


5

ターミナルバージョン2.2.3(303.2)を使用しています。

問題は、ルートからディレクトリを変更しようとすると、末尾のスラッシュを取得するためにいくつかのディレクトリのタブを二重にする必要があることです。

たとえば、入力を開始します

cd /etTab

それは私に与えます:

/etc

その後、必要な末尾のスラッシュを取得するためにもう一度タブを押す必要があります

/etc/

そして最後に、Tab単一のタブヒットを使用して、さらにすべてのディレクトリを作成できます。

どうすれば修正できますか?Ubuntuのbashがとても恋しいです。


cd /etcOS / Xでは動作しませんか?
ヘネス

ありますが、たとえば/ etc / some / thingにアクセスする必要があります。そして、私はより少ない
タブタップ

1
@Hennesターミナルシェルデフォルトのシェルを使用するGUIアプリケーションではありません
マッテオ

1
それをあなた自身の答えとして投稿してください。このようなスクリーンショットを追加する場合がありますcdn.osxdaily.com/wp-content/uploads/2012/03/… または、bashの完了時にこれを確認してください。gnu.org/software/bash/manual/html_node/…–
ヘネス

1
面白い。通常、mark-directoriesBashではonに設定されており、必要な処理を行う必要があります。関連項目:ファイルを
検索

回答:


10

これは、OS Xでは/etcシンボリックリンクであるためです。

$ l /etc
lrwxr-xr-x 1 root 11 2012-09-22 09:02 /etc -> private/etc/

つまり、/etc あるファイル、ディレクトリではありません。

のような実際のディレクトリを試すと/usr、予想される動作が表示されます。

cd /us TAB

cd /usr/

次のコマンドを使用して、Bashにシンボリックリンクされたディレクトリをディレクトリとして処理させることができます。

bind 'set mark-symlinked-directories on'

次のように追加して.bashrc、ソースを指定します(つまり、コマンドを読み込んで実行します)。

. ~/.bashrc

または、ターミナルを再度開きます。


ああ、シンボリックリンクを完全に見逃しました。良いですね!
slhck

はい、それは非常にOS X固有です。別の例は/var、にシンボリックリンクされていprivate/varます。
-jaume

0

残念ながら、私にとって現在最も簡単な方法は/bin/bashbin/zsh(端末設定-シェルを開く)に切り替えることです。

しかし残念なことに、「箱から」のbashで必要な動作を簡単に達成することはできません。

そして、エイリアスなどをエクスポートする必要があります...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.