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*

おすすめ記事