lsコマンドでアスタリスクの動作を混乱させる

lsコマンドでアスタリスクの動作を混乱させる

CentosとDebianでこれを試しました。

lsコマンドの*は再帰検索を意味しますか?

ディレクトリ名の入力を開始してタブをクリックすると、次のようになります。

# ls /etc/rc<tab>
rc0.d/    rc1.d/    rc2.d/    rc3.d/    rc4.d/    rc5.d/    rc6.d/    rc.local  rcS.d/

パスにアスタリスクを追加すると、同じ内容が表示されると思いましたが、再帰的に検索されます。

# ls /etc/rc*
/etc/rc.local

/etc/rc0.d:
K50netconsole  K90network

/etc/rc1.d:
K50netconsole  K90network

/etc/rc2.d:
K50netconsole  S10network

/etc/rc3.d:
K50netconsole  S10network
...

Windows dirコマンドは、/ etc / rc *に一致するディレクトリのみを表示します。タブキーを使用せずにlsでこの動作をどのように取得できますか?

****修正/更新:

さて、今*はコマンドではなくbashによって解釈されることを理解していますが、常に「ファイルとフォルダのエントリを列挙する」と解釈されます。それとも別のコンテキストで使用すると、別の操作を実行しますか?それでは、何か大きなことがあるのでしょうか? bashのif文は、「ファイルとフォルダ名を返すために*がファイルシステムパスで使用されている場合、*がrpmで使用されている場合(例:rpm -qa 投稿*)はパッケージ名などを返します。

答え1

アスタリスクはlsコマンドに到達する前に拡張されるため、次のようになります。

ls /etc/rc0.d    /etc/rc1.d   /etc/rc2.d    /etc/rc3.d    /etc/rc4.d ...

各ディレクトリの内容を別々に一覧表示します。

ls -d /etc/rc*ディレクトリ内のファイルのリストを表示しないコマンドを使用するか、拡張子のみを表示するコマンドを使用できますecho /etc/rc*

答え2

デフォルトでは、lsディレクトリパラメータで呼び出すと、ディレクトリの内容が表示されます。このオプションを使用してこの動作を変更できます-d。 ~からman ls

-d, --directory
       list  directory entries instead of contents, and do not derefer‐
       ence symbolic links

関連情報