2011-10-31 12 views
-5

a,aabbbおよびcbの4つのファイルがあります。コマンドはls?[a-b]*以下のコマンドを使用したunix listing files

出力とは何ですか?

a. aab bb 
b. a aab bb 
c. aab bb cb 
d. cb 
e. a aab bb cb 

私はbを回答していますので、私が正しいかどうか確認してください。

+2

ls?[a-b] * - はコマンド?またはですか?スペースであるはずです。 –

+0

私の推測では '? 'の前にスペースがあります –

+0

http://original.jamesthornton.com/linux/man/glob.7.html – sehe

答えて

2

ls ?[a-b]*lsの後のスペースに注意してください)、そうでなければ「コマンドが見つかりません」というエラーに終わる可能性があります。

全て(*)で、何か何が続く文字aまたはb[a-b])に続く任意の文字(?)で始まるリストファイル(ls)を意味するであろうこと、それは確かにls ?[a-b]*であると仮定。

従って、これは、AまたはBのいずれかであること第二の手紙と少なくとも2つの文字を持っている名前で、現在のディレクトリ内のファイル/ディレクトリにマッチします。

答えはaab bb cb(回答C)になるはずです。

P.S.これは実際には、いくつかの味付けされたユーザー、つまりグロブを飛び越えるかもしれないかなり気の利いたトリックの質問です。*はスタンドアロンのワイルドカード文字で、正規表現のように前のパターンの修飾子としては機能しません。

+1

'あなたは「コマンドが見つかりません」で終わるでしょう。現在のディレクトリにある 'ls?[ab] *'パターンに一致するファイルと同じ名前を持つパス内のプログラム'lsQab123'。 PATH変数に現在のディレクトリが含まれている場合、この事態の可能性は0.0001‰から約0.01‰に上昇する可能性があります。 +1 ** PS ** _my_推測(!)は、Regexの混乱が実際にOPをトリップしたことです。 +1はそのため – sehe

+0

良い点ですが、クイックテストでは、コマンド名グロビングは '$ PATH'内のコマンドではなく現在のディレクトリのコマンドでしか動作しないようです。 '0.0001%'はそれほど悪くはない;)ポストを「最終的に...」に更新した。 –

+0

@ Shawn:これがPATH要件を明示している理由です)(ohと 'pedantic'タグ...) – sehe