この記事の目次
「|」と「>」は、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` がすでに存在していたら、その内容は消去され新たな内容で上書きされます。
これらの記号は、シェルスクリプトやコマンドライン操作で頻繁に使われ、効率的な作業を可能にします。それぞれ適切な場面で使い分けることが重要です。