Linux LPICレベル1

「|」(パイプ記号)と「>」(リダイレクト記号の違い

 

「|」と「>」は、Linuxコマンドラインで使用される特殊文字で、それぞれ異なる役割

「|」(パイプ記号)

パイプ記号「|」は、コマンドの出力を他のコマンドにパイプ(送る)するために使用されます。
例えば、次のように使用できます:command1 | command2。
これにより、command1の出力が command2 に渡され、command2 はその出力を処理できます。

例:
ls -l | grep "file.txt"

上記のコマンドは、現在のディレクトリ内のファイル一覧を表示し、その出力を grep コマンドに渡して、"file.txt"というテキストを検索します。

「>」(リダイレクト記号)

リダイレクト記号「>」は、コマンドの出力をファイルに書き込むために使用されます。
例えば、次のように使用できます:command > file.txt。
これにより、commandの出力が file.txt というファイルに上書きされます。

例:
echo "Hello, World!" > output.txt

上記のコマンドは、"Hello, World!"というテキストを含むファイル output.txt を作成します。既存のファイルがある場合、それは上書きされます。

要するに、パイプ記号「|」はコマンド間でデータを渡すのに対し、リダイレクト記号「>」はコマンドの出力をファイルに書き込むために使用されます。

「|」(パイプ記号)と「>」(リダイレクト記号の違い、要点

`|` と `>` は、シェルスクリプトにおけるリダイレクト(出力の方向を変える)操作に使われる記号ですが、それぞれ異なる動作をします。

「|」(パイプ記号)

この記号は、一つのコマンドの出力を別のコマンドの入力として使います。例えば、`ls | grep .txt` というコマンドは、`ls` コマンドの出力(ディレクトリ内のファイル一覧)を `grep .txt` コマンドの入力として使い、`.txt` を含むファイル名だけを表示します。

「>」(リダイレクト記号)

この記号は、コマンドの出力をファイルに書き込みます。既存のファイルがある場合は上書きされます。例えば、`ls > filelist.txt` というコマンドは、`ls` コマンドの出力(ディレクトリ内のファイル一覧)を `filelist.txt` というファイルに書き込みます。もし `filelist.txt` がすでに存在していたら、その内容は消去され新たな内容で上書きされます。

これらの記号は、シェルスクリプトやコマンドライン操作で頻繁に使われ、効率的な作業を可能にします。それぞれ適切な場面で使い分けることが重要です。