shopt -s autocdを使用する際の注意事項はありますか?

shopt -s autocdを使用する際の注意事項はありますか?

最近この機能を見つけました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そのコマンドが呼び出されます。したがって、コマンド名を誤って入力してディレクトリ名と一致しない限り、コマンドを実行するのではなく、誤ってディレクトリを変更する危険性はありません。lscd ls

ディレクトリ名を誤って入力したが、入力した内容がコマンド名の場合、そのディレクトリに変更せずに誤ってコマンドを実行する危険があります。これはほとんど問題ではありません。

それだけの価値があるので、私はそれをautocd長年使ってきましたが、私にとっては、bashにいなかったときにzshの主要な販売ポイントの1つでした。

おすすめ記事