空のフォルダで実行するとなぜls > empty.txt
表示されますか?空です。txt~へ空です。txt?
詩ではなく本物なのになぜそうなのかわかりません。
私にとって、彼らの考え方ls > empty.txt
は次のとおりです。段階的に:
ls
実行され、出力を取得します(スペースその瞬間)>
私が持っているという意味です。出力前のコマンドの(実際にfd 2
は)empty.txt
から出力を得る(なし)ファイルの名前ls
。
それではなぜ走るのですか?
マオコン.txt
わかりました。
empty.txt
フォルダが空の場合はどうなりますか?
ベストアンサー1
注文が間違っています。シェルは、すべてのプログラムが出力方向を再指定する方法を教えてくれません。
それで何が起こりますか?
- シェルはこのコマンドを処理するために新しいシェルを起動します。
- 元のシェルは、新しいシェルが完了するのを待ちます。
- ファイル生成に関連する新しいシェル処理
> empty.txt
。 - 新しいシェルは次のように置き換えられます。
ls
- lsが実行され、空の.txtファイルがリストされた後に終了します。
- 元のシェルは新しいシェル(ls)が完了したことを通知し、新しいプロンプトが印刷されます。