最近この機能を見つけましたshopt -s autocd
。
autocd If set, a command name that is the name
of a directory is executed as if it were
the argument to the cd command. This op‐
tion is only used by interactive shells.
一見すると役に立つと思いますが、私はBashプロのユーザーではなく、使用するのが間違いではないかと思います。
設定は潜在的に危険ですかshopt -s autocd
?私は特に、スクリプトと他のアプリケーションや構成との競合に興味があります。
ベストアンサー1
私は立ち上がり、少なくとも深刻な警告なしに拒否します。その理由autocd
はデフォルトではなく危険なためではありません。ただし、シェルのデフォルト値はスクリプト動作であり、autocd
唯一の目的は入力を節約することで、スクリプトで実際には使用されていないためです。
対話型構成で設定したオプション(例.bashrc
:).zshrc
はスクリプトには影響しません。どのアプリケーションとも競合しません。
理論的には、他のいくつかの構成がこの構成と競合する可能性がありますが、autocd
そうする可能性はほとんどありません。せいぜい使用すると動作しない構成が発生する可能性がありますがautocd
、それでも合理的な例がすぐに浮上することはありません。
コマンド名は常にディレクトリ名より優先されます。たとえば、というディレクトリがある場合は、実行するとls
代わりにls
そのコマンドが呼び出されます。したがって、コマンド名を誤って入力してディレクトリ名と一致しない限り、コマンドを実行するのではなく、誤ってディレクトリを変更する危険性はありません。ls
cd ls
ディレクトリ名を誤って入力したが、入力した内容がコマンド名の場合、そのディレクトリに変更せずに誤ってコマンドを実行する危険があります。これはほとんど問題ではありません。
それだけの価値があるので、私はそれをautocd
長年使ってきましたが、私にとっては、bashにいなかったときにzshの主要な販売ポイントの1つでした。