Debian コマンドラインであるターミナルでコマンドを実行すると、コマンドが実行され、結果があればターミナル自体に出力されることは誰もが知っています。場合によっては、出力をすぐに表示するだけでは不十分な場合があります。特に、後で使用するために出力を保存したい場合です。幸いなことに、Linux の bash とすべてのオペレーティング システムの bash には、コマンドの出力を指定されたファイルに出力する機能が備わっています。この記事では、次の 2 つのシナリオに取り組みます。
- コマンド出力をファイルに保存する
- ターミナルで出力を印刷してからファイルに保存する
この記事に記載されているコマンドと手順を Debian 11 Bullseye システムで実行しました。
コマンド出力をファイルに保存する
コマンドの出力が指定したファイル名に保存される例をいくつか実行します。
ターミナルを開くには、Super/Windows キーを使用して Application Launcher 検索にアクセスし、次のようにターミナルを検索します。
新しいファイルを作成する/既存のファイルを置き換える
コマンドの出力を新しいファイルに保存する場合、または既存のファイルの内容をコマンドの出力で置き換える場合は、次の構文を使用してください:
$ [コマンド]> [/ファイルの場所/ファイル名]
たとえば、lscpu コマンド (システム情報を表示する) を使用して、その内容を systeminformation.txt という名前のファイルに出力します。このファイルは私のシステムにはまだ存在しません。
$ lscpu > /home/sana/systeminformation.txt
ファイルマネージャーからこのファイルにアクセスすると、次のようになります:
既存のファイルに出力を追加
Linux コマンドの出力を既存の内容を変更せずにファイルに保存する場合は、次の構文を使用できます。
$ [コマンド]>> [/ファイルの場所/ファイル名]
たとえば、次のコマンドは、既存のファイル systeminformation.txt の末尾に ls コマンドの結果を追加します。
$ ls >> /home/sana/systeminformation.txt
以前はシステム情報のみが含まれていた次のファイルには、ls コマンドの出力も含まれています:
出力を端末に出力してファイルに保存する
上記のコマンドは、出力をファイルに保存するだけで、ターミナル自体に出力しないことに気付いたかもしれません。コマンドの出力をターミナルでも表示する場合は、次の構文を使用します。
$ [コマンド] |ティー [/ファイルの場所/ファイル名]
たとえば、次の画像でエコーしたいテキストは、ターミナルにエコーされ、ファイル myfile.txt にも出力されます。
$ echo "print this text to my file" | tee /home/sana/myfile.txt
これらは、コマンドによって生成されたファイルの内容です:
コマンドの出力を既存のファイルに追加する場合。次の構文に従ってください:
$ [コマンド] |ティー -a [/ファイルの場所/ファイル名]
たとえば、次の画像は、さらにテキストがエコーされ、既存のファイルに追加される様子を示しています:
$ echo "here is some more text for printing" | tee -a /home/sana/myfile.txt
ファイルは次のようになります:
この記事で生成したこれらの出力指向のテキスト ファイルは、場合によっては、ターミナルでの出力の通常の印刷よりもはるかに便利です。これほど強力な Debian bash があります!