Re: echo * の実行結果について

この質問の投稿一覧へ

なし Re: echo * の実行結果について

msg# 1.2
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-7-6 18:11 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
※スマホからだと表示が変になったので編集しなおしました
※さらに間違っていたので内容修正しました。

'*'ではなく、*と入力してるんですよね?

「echoコマンドに渡す引数として任意の文字列であるワイルドカードアスタリスク('*')」を指定したのか、シェルに「カレントディレクトリで選択可能な全て=ワイルドカード(*)」と渡したのかの違いです。

例えばですが
$ ls
a.txt b.txt c.txt
d.txt e.txt f.txt
1.log 2.log 3.log
な状況で
find . -name '*.txt'
→ find コマンドに 「*.txt」という名前のファイルを探すよう指示
→→ findコマンドが「*」を解釈して、検索結果として「a.txt, b.txt, c.txt, d.txt, e.txt, f.txt」を返す

find . -name *.txt
→ シェルが「*」を展開して
find . -name a.txt b.txt c.txt d.txt e.txt f.txt
というコマンドを実行しようとする
→→ find コマンドに 「a.txt, b.txt, c.txt, d.txt, e.txt, f.txt」という名前のファイルを探すよう指示
は明確に異なります。

その*が誰(シェル?実行対象コマンド?)に対して渡されるのか、がポイントですね

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.