mkdirがワイルドカードを使用できないのはなぜですか? [コピー]

mkdirがワイルドカードを使用できないのはなぜですか? [コピー]
nathan@gentoodesktop ~/Documents $ mkdir test
nathan@gentoodesktop ~/Documents $ mkdir te*/test
mkdir: cannot create directory 'te*/test': No such file or directory
nathan@gentoodesktop ~/Documents $ cd te*
nathan@gentoodesktop ~/Documents/test $ mkdir test
nathan@gentoodesktop ~/Documents/test $ ls 
test

答え1

パターンは次にのみ拡張されます。既存の名前で、パターンがte*/test既存の名前と一致しません。これはte*/test完全なパターンであり、そのte*部分は別々に一致しません/test

nullglobパターンが一致しないため(およびシェルオプションが設定されていないためfailglob)、拡張および提供されず、ディレクトリ内にサブディレクトリを作成mkdirできないと文句を言います。testte*

cd te*パターンがte*既存のディレクトリの名前と一致するため、コマンドは成功しますtest。一致する名前がさらにあると、te*エラーが発生する可能性がありますcd

答え2

適切なスイッチを使用してこれらの問題をデバッグできます。 1つ目は、-v参照できるより多くの出力を生成することです。もう1つは、-p存在しない場合は親ディレクトリを作成することです。これら2つをプレイすると、良いレッスンを得ることができます。例えば。 :

mkdir -pv _dirname_

関連情報