質問: 新しいLinuxの教科書で勉強しているのですが、 `$ ls ba*` と `$ ls ba??` などのコマンドを打っても ``` そのようなファイルやディレクトリはありません ``` と出てきます。 `ls -1` とか本に出てるように打ってもホームディレクトリにあるファイルが出てきます。 こんな初歩的な部分で躓いてすごい萎えてます... 教えてもらえないでしょうか?
回答: `*`や`?`は**ワイルドカード**と呼ばれる特殊な指定方法で、それぞれ * `*` 任意の0文字以上の文字 * `?` 任意の1文字 にマッチします。 `ls ba*`は「`ba`で始まるファイル名(単なる`ba`も含む)」、`ls ba??`は「`ba`で始まる4文字のファイル名」にマッチしますが、**条件に当てはまるファイルが存在しなければ**「そのようなファイルやディレクトリはありません」とエラーになります。 単に`ls`と実行してどんなファイルがあるのかを確認してからワイルドカードを使用してみましょう。 もしくは空の適当なファイルを作って実行してみるのもよいでしょう。 ``` $ touch bash bash.txt # touch コマンドで空のファイルを作成 $ ls ba* bash bash.txt $ ls ba?? bash $ rm bash bash.txt # 必要なくなったら削除 ```