ls> empty.txtを実行すると、空のフォルダにempty.txtが表示されるのはなぜですか?

ls> empty.txtを実行すると、空のフォルダにempty.txtが表示されるのはなぜですか?

空のフォルダで実行するとなぜls > empty.txt表示されますか?空です。txt~へ空です。txt

詩ではなく本物なのになぜそうなのかわかりません。

私にとって、彼らの考え方ls > empty.txtは次のとおりです。段階的に:

  1. ls実行され、出力を取得します(スペースその瞬間)
  2. >私が持っているという意味です。出力前のコマンドの(実際にfd 2は)
  3. empty.txtから出力を得る(なし)ファイルの名前ls

それではなぜ走るのですか?

マオコン.txt

わかりました。

empty.txt 

フォルダが空の場合はどうなりますか?

ベストアンサー1

注文が間違っています。シェルは、すべてのプログラムが出力方向を再指定する方法を教えてくれません。

それで何が起こりますか?

  1. シェルはこのコマンドを処理するために新しいシェルを起動します。
  2. 元のシェルは、新しいシェルが完了するのを待ちます。
  3. ファイル生成に関連する新しいシェル処理> empty.txt
  4. 新しいシェルは次のように置き換えられます。ls
  5. lsが実行され、空の.txtファイルがリストされた後に終了します。
  6. 元のシェルは新しいシェル(ls)が完了したことを通知し、新しいプロンプトが印刷されます。

おすすめ記事