LinuCレベル1 ファイル・ディレクトリの操作と管理 問31
ファイル・ディレクトリの操作と管理/基本的なファイル管理の実行カレントディレクトリに file1.txt、file2.txt、file10.txt、fileA.txt の4つのファイルだけがある。bashで ls file[0-9].txt を実行したときに表示されるファイルとして正しいものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)
- Afile1.txt と file2.txt と file10.txt
- Bfile1.txt と file2.txt と fileA.txt
- Cfile10.txt だけ
- Dfile1.txt と file2.txt
正解:D
解説
ワイルドカードの [0-9] は、角かっこ内に並べた範囲に含まれる任意の1文字にマッチします。そのため file[0-9].txt は「file」と「.txt」の間に数字がちょうど1文字だけ入る名前に一致し、file1.txt と file2.txt が該当します。file10.txt は間に2文字あるため一致しません。任意の文字列にマッチさせたい場合は * を、任意の1文字なら ? を使います。
選択肢ごとの解説
- A誤り。[0-9] は1文字だけにマッチするため、数字が2文字入る file10.txt は一致しません。
- B誤り。[0-9] は数字の範囲だけを表すので、英字の A を含む fileA.txt は一致しません。
- C誤り。[0-9] は2文字の数字には一致しないので、file10.txt は表示されません。1文字の数字を含む2つのファイルが表示されます。
- D正しい。file と .txt の間に数字がちょうど1文字あるファイル名だけが一致します。