ディレクトリのスラッシュの代わりにLinuxファイル名タブオートコンプリート追加スペースを変更するには?

ディレクトリのスラッシュの代わりにLinuxファイル名タブオートコンプリート追加スペースを変更するには?

奇妙な理由で、私のファイル名のオートコンプリート機能は通常とは異なります。次のファイル構造から./foobar/file.txt削除するには、コマンドラインでファイル名をfile.txt入力してオートコンプリートします。rm foob<TAB><TAB>rm foobar/file.txt

ただし、最初のコマンドをクリックすると、コマンドはオートコンプリートされます<TAB>rm foobar後にスペースを含めますfoobar)。誤ってこの動作に変更した可能性はありますか?どうやって変更できますか?

答え1

/etc/bash_completion.d私の経験によれば、これは通常、さまざまなパッケージをインストールしたときにインストールおよび更新されるファイルの1つの構成が正しく機能しないために発生します。私の提案は、すべてのファイルをそのディレクトリの外に移動して新しいシェルを起動し、動作が正常に戻ることを確認することです。その場合は、ファイルを一度に1つずつ(またはグループ)ディレクトリに戻して、どのファイルが問題を引き起こしているかを確認できます。範囲を絞った後は、ファイルをインストールするパッケージのバグを報告してください!

答え2

complete -p rm現在実行中の作業を確認し、rmbash機能が実際に目的の方法で機能していることを確認するために使用します。

完了が必要ない場合rm(たとえば、このようなパラメータ)、-ibash設定に次の行を追加するだけです。

complete -r rm; complete -o default rm(現在の完成を削除し、基本的な完成を設定)

関連情報