bashリリースでの複数の引数を持つcdの異なる動作


14

ここに私を困惑させている何かを投稿します。アプリケーションサーバーをJessieからStretchにアップグレードすると、bashスクリプトが破損しました。

調査の結果、cdコマンドの動作の変更に限定しました。ここでは、スクリプトが実行していることが良いアイデアであるかどうか、または改善できるかどうかについては、行動の変更/変更の認識の意識に焦点を当てています。

ジェシー

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*

cdは動作し、最初のディレクトリにcdします。実際には、*-runは同じディレクトリへのシンボリックリンクです。

ストレッチ

$echo *-*
xxxx-1.0b xxxx-run
$cd *-*
bash: cd: too many arguments

bash Jessieでは4.3.30(1)、Stretchでは4.4.12(1)です。

なぜジェシーとストレッチの間の行動の変化ですか?


回答:


23

参照はbash 4.4のRelaseノート特に、

qq。config-top.hに設定可能な新しいオプションがあり、複数のディレクトリ引数をcd致命的なエラーにします。

ところで、私は知りませんでした。「bash cd number 4.4」を検索しました。


8
面白い。エスケープバグがある場合に追加の引数を静かに破棄することを避けるための良いことです。
スペクトル

@spectras興味深いコメントは、セキュリティ面で意味があるかもしれないと思っていましたが、その角度からは見ていませんでした。
ルイFリベイロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.