'ls | とはどういう意味ですか? file.txt 'ソートは何をしますか?

'ls | とはどういう意味ですか? file.txt 'ソートは何をしますか?

私はただシェルコマンドを学んでいます。具体的にはパイプを学んでいます。

ls | sort file.txtこれsort file.txtで、次のコマンドを区別できません。明らかに違いがあるはずです。

誰かが何が起こっているのか説明してもらえますか?

答え1

両方のコマンドの表示結果は同じls | sort file.txtです。sort file.txt

sort file.txt行をアルファベット順に並べ替え、file.txt結果を印刷します。

ls | sort file.txtls現在のディレクトリに名前リストを生成するために呼び出されます。このリストは から読み取られるので、sort file.txtの名前リストを無視し、代わりにソートされたコンテンツを出力として生成します。この場合、標準入力から何も読み取っていないため、出力は破棄されます。sortfile.txtlsfile.txtlssort

ls | sortこれを使用して、出力行ls(すでにソートされている)をソートできます。sort読み取る出力は、読み取る特定のファイル名が指定されていないため、ls標準入力ストリーム(パイプ付き出力ストリーム)から読み取られます。lsただし、Unixファイル名は、テキスト行が必要なツールを使用して処理されない場合があります。これらのファイル名には改行文字を含めることができるからです。

関連情報