Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

Linuxでコマンドラインから素早くファイルを作成する4つの方法

Linuxでは、手間をかけずに素早くファイルを作成したい場面が多々あります。例えば、後で中身を書き込むためのプレースホルダー(仮ファイル)を用意したいケースや、多くのプログラムが特定のディレクトリに空のファイルが存在するかどうかでオプションのオン/オフを切り替える仕組みになっているケースなどが挙げられます。

また、コマンドラインから直接テキストファイルを作成することも可能です。以下の例を試すには、ターミナル環境で作業する必要があります。DashやWhiskerメニューで「terminal」を検索するか、Ctrl + Alt + F1〜F6キーで仮想端末を開くか、多くのデスクトップ環境ではCtrl + Alt + Tでターミナルを起動できます。アプリケーションメニューから「システムツール」→「端末(Terminal)」を選択する方法もあります。

方法1:touchコマンドを使う

touch empty.txtと入力すると、現在いるディレクトリに空のファイルが作成されます。コマンドプロンプトの初期位置がホームディレクトリであれば、そこにempty.txtという空のテキストファイルが作られます(同名のファイルが既に存在しない場合)。なお、touchコマンドは既存ファイルに対しては更新日時を更新する動作になります。

存在しないファイル名を指定してtouchを実行すると、即座に0バイトの空ファイルが作成されます。これが標準的な方法で、追加の入力も不要で、実行しても特に出力は表示されません。lsと入力してEnterを押せば、ファイルが作成されたことを確認できます。ファイル名は有効なものであれば自由に指定できます。

方法2:echoコマンドを使う

echoコマンドは通常、指定した文字列をそのままコマンドラインに表示しますが、その出力をリダイレクトすることで新しいファイルを作成できます。echo -n > test.txtとすれば、中身が空のファイルが作成され、touchと同じ結果になります。

また、echo Some text > test.txtのように入力してEnterを押せば、1行のテキストが入ったファイルが作成できます。「Some text」やファイル名は自由に置き換え可能ですが、同名のファイルが既に存在する場合は上書きされて元の内容が失われるため注意が必要です。あるいはecho "" > testFile.txtとすれば、空行だけが入ったファイルが作られます。

方法3:printfコマンドを使う

完全に空のファイルを作りたい場合はprintf "" > testFile、改行文字だけが入ったファイルを作りたい場合はprintf '\n' > testFileを試してみてください。こちらも同様に同名ファイルを上書きするため、慎重に使う必要があります。

他の方法と大きく変わりませんが、スクリプトの中でこの書き方を見かけることもあります。古いLinuxディストリビューションや一部のUnix実装では、echo -nコマンドが改行を正しく除去しないことがあり、そうした場合にprintfが役立ちます。ただし、単に空ファイルを作るだけであれば、touchコマンドを使うのがほぼ常に最も簡単です。

方法4:catの出力をリダイレクトする

catコマンドは短いテキストファイルの内容表示や複数ファイルの連結によく使われますが、簡易テキストエディタのように使ってターミナルから直接ファイルを作成することもできます。例えば簡単なスクリプトを作りたい場合は、cat > hello.shと入力してEnterを押します。続けて#!/bin/bashと入力してEnter、次にecho Hello Worldと入力してEnterを押します。最後にCtrl + Dを押せばファイルが保存されます。cat hello.shと入力すれば内容を確認でき、テキストエディタで書いたのと同じ結果になっているはずです。

これは、コマンドラインから実際にテキストが入ったファイルを素早く作りたい場合に非常に便利なテクニックです。スクリプトを実行可能にするにはchmod +x hello.shが必要ですが、それ以外の点では、急いでスクリプトを書き出すのに最適な方法です。設定ファイルなど、数行だけ書き込めばよいファイルの作成にも使えます。用途の制限はまったくなく、既存ファイルを上書きしない限り自由に活用できます。

その他の応用テクニック

意外に思われるかもしれませんが、リダイレクトを使えばtouchと同じように空ファイルを作成することもできます。コマンドラインで> billと入力すれば空のファイルが作られます。cシェルやtcsh環境を使っている場合は:> billとする必要があるかもしれません。

ここで挙げた例では任意のファイル名を使用できる点に留意してください。これらのテクニックはスクリプト作成に限定されるものではなく、工夫次第でさまざまな場面に応用できます。さらに一歩進んだ使い方として、cp /dev/null billとすることもできます。これはLinuxの特殊デバイスファイル/dev/null(中身は必ず空)を新しいファイルにコピーする操作で、touchと同じ結果が得られます。

著者について

Kevin Arrows氏は10年以上の業界経験を持つ技術スペシャリストです。Microsoft認定テクノロジースペシャリスト(MCTS)の資格を持ち、最新の技術動向を追いかけることに情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど幅広い技術分野について執筆しており、その専門性と知識は同業者からも広く認められています。特に、複雑な技術的概念を明快かつ簡潔に説明する能力で高い評価を得ています。

  1. 【保存版】Ubuntu PCで「ブートデバイスが見つかりません(3F0)」エラーが出たときの対処法

    「Boot Device Not Found(3F0)」エラーは、PCの起動を妨げ、黒い画面にBIOSからの警告メッセージが表示されるトラブルです。このエラーは、コンピュータが起動すべきOSなどを検出できていないことを意味します。最も一般的な原因は、GRUBブートローダーの欠損または破損です。その他の原因としては、ハードディスク自体の故障やケーブルの接触不良、起動順序(ブートオーダー)の誤り、UEFIとLegacyブートモードの不整合などが考えられます。本記事では、このエラーを解決するための具体的な方法を順番に紹介します。1. BIOS設定を修正する最も手軽な対処法は、BIOS設定を初期状態(

  2. Ubuntuで「lvmetadへの接続に失敗しました」エラーを解決する方法【原因と対処法】

    Ubuntuは、OpenStackをサポートするクラウドコンピューティング分野で広く利用されている、無料のオープンソースLinuxベースOSです。6ヶ月ごとにアップデートがリリースされ、新機能の追加やパフォーマンス向上が継続的に行われています。しかし最近、「Failed to Connect to lvmetad, Falling back to Device Scanning(lvmetadへの接続に失敗しました。デバイススキャンへフォールバックします)」というメッセージが表示され、OS自体を起動できなくなるという報告が多数寄せられています。Ubuntuで「lvmetadへの接続エラー」が発