web-dev-qa-db-ja.com

ディレクトリのシンボリックリンクにタブ補完でスラッシュを追加するにはどうすればよいですか?

私の~/Documentsディレクトリはシンボリックリンクです:

nathan@nathan-desktop:~$ stat Documents
  File: Documents -> /mnt/nathan/extended/Documents

ディレクトリにcdしたい場合は、次のように入力できます。

cdspaceDoctab

...また、タブ補完により、umentscd Docの最後に追加されます。ただし、シンボリックリンクがディレクトリを指している場合でも、末尾の/を追加しますnot

Bashにそれをさせる方法はありますか?

3
Nathan Osman

READLINEmark-symlinked-directoriesオプションを有効にします。それを行う方法はいくつかあります。

  1. .inputrcファイルにコマンドを入力して、readlineをカスタマイズします。

    • ~/.inputrcを作成または編集し、次の行を追加します。

      $include /etc/inputrc
      set mark-symlinked-directories on
      
    • ログイン/ログアウトまたはを押します ctrl+x そして ctrl+r 設定を再読み込みします。

  2. .bashrcファイル(または.profileファイル)にコマンドを入力して、readlineをカスタマイズします。

    • ~/.bashrcを編集して、次の行を追加します。

      bind 'set mark-symlinked-directories on'
      
    • ログイン/ログアウトまたは source ファイル:

      source ~/.bashrc
      
  3. .shファイルを/etc/profile.dディレクトリに作成して、すべてのユーザーのreadlineをカスタマイズします。

    • 次のようなファイル/etc/profile.d/mark-symlinked-directories.shを作成します。

      #!/bin/sh
      bind 'set mark-symlinked-directories on'
      

      このファイルに対する実行可能権限は必要ありません。

    • ログイン/ログアウト。それでおしまい。

参考文献:


私が見つけた1つの簡単な方法はダブルです tab 完了のため:

cdspaceDoctabtab

最初 tab はumentsを追加し、2番目は/を追加し、3番目は含まれるディレクトリのリストを出力します。

5
pa4080