1

シェルスクリプトは初めてです

コマンドを入力しました

$ ls -l >out.txt

次に、出力が表示されます

$ vi out.txt

ファイルの内容は

total 8
-rw-rw-r-- 1 arun arun 0 May  5 19:55 out.txt

私は今これをします

$ ls -l
total 12
-rw-rw-r-- 1 arun arun 54 May  5 19:55 out.txt

端末で受け取った出力とファイル out.txt に保存された出力に相違があるのはなぜですか?

4

4 に答える 4

2

初めて実行しlsout.txtは空でした。

を 2 回目に実行したときはlsout.txtの結果が含まれていたlsため、空ではありません。

于 2013-05-05T14:35:58.337 に答える
2

シェルがコマンドを解析し、out.txt への stdout の使用を確認するとすぐに、ディレクトリ内の out.txt をサイズ 0 バイトで開きました。後でシェルで ls -l を実行したとき、 out.txt にはすでにいくつかのコンテンツがあり、サイズが表示されました。

于 2013-05-05T14:36:34.077 に答える
1

あなたが走ったとき

ls -l >out.txt

イベントのシーケンスは次のとおりです。

  1. ファイルout.txtを書き込み用に開きます。最初のファイル サイズは 0 バイトです。
  2. 実行ls -lすると、空のファイルが表示されますout.txt
  3. ls -lの出力をに書き込みますout.txt

ステップ 3 の後、out.txtは 54 バイトのファイルであり、2 回目の の呼び出しで確認できますls -l

于 2013-05-05T14:56:04.327 に答える
0

...最初のコマンドがデータをout.txtに入れるためです。その後、そのサイズは必然的に大きくなります。

于 2013-05-05T14:36:15.740 に答える