GNU/Linux >> Linux の 問題 >  >> Linux

ワイルドカード*はコマンドとしてどのように解釈されますか?

*の方法を知っています lsのようなコマンドで解釈されます 例えば。ただし、*を実行しようとすると コマンドとして、シェルは作業ディレクトリの最初のファイルまたはディレクトリを実行しようとします。どうしてこれなの?シェルは*をどのように理解しますか ?

承認された回答:

他のいくつかのオペレーティングシステムとは異なり、Unixでは、ファイル名のワイルドカードを展開するのはシェルです。最初にパラメータ展開とグロブを展開し、次に(現在の)最初の単語を実行するコマンドの名前として使用します。

これは、先頭にダッシュが付いた名前のファイルが面倒な場合がある理由でもあります。*のようなグロブです。 ファイル名に展開され、ダッシュで始まる名前をオプションとして使用できます。 (恐ろしい例は、-rというファイルです。 作業ディレクトリにあると、rm *になります すべてを再帰的に削除します…)

通常、*は使用しません ただし、コマンドラインの最初の項目として、最初のファイルで実行するコマンドを決定することで、問題が発生する可能性は低くなります。


Linux
  1. Linuxgrepコマンドの使用方法

  2. 最初の一致後に検索コマンドを停止する方法は?

  3. ティーコマンドはどのように機能しますか?

  1. コマンドラインで括弧はどのように解釈されますか?

  2. Bashコマンドの最初の単語をすばやく変更するには?

  3. ifconfig コマンドから最初の IP アドレスをキャプチャする方法は?

  1. Linuxでhistoryコマンドを使用する方法

  2. OpenShiftでのocdebugコマンドの動作

  3. basenameコマンドの使用方法は?