copyコマンド(コピーコマンド)とは | 意味や読み方など丁寧でわかりやすい用語解説
copyコマンド(コピーコマンド)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
コピーコマンド (コピーコマンド)
英語表記
copy command (コピー コマンド)
用語解説
copyコマンドは、コンピューターシステムにおいてファイルやディレクトリを複製する際に使用する基本的なコマンドである。OSの種類によって微妙に書式や機能が異なるが、その本質的な役割は「指定した場所にあるデータ(ファイル)の複製を作成し、別の場所に保存する」ことにある。システムエンジニアを目指す上では、日々のファイル操作やスクリプト作成において頻繁に利用するため、その使い方をしっかりと理解しておく必要がある。
Windows環境では主にcopyコマンドが、LinuxやUnix系の環境では主にcpコマンドが用いられる。どちらのコマンドも、元のファイルを変更せずにその内容をそっくりそのまま新しいファイルとして作成したり、既存のディレクトリにファイルを複製したり、複数のファイルをまとめて複製したりすることが可能だ。これは、データのバックアップ、テスト環境構築、プログラムの配布など、多岐にわたる用途で不可欠な機能となる。
詳細を説明する。まずWindows環境のcopyコマンドから解説する。
copyコマンドの基本的な書式は、「copy コピー元 コピー先」である。
例えば、「copy original.txt new.txt」と実行すると、カレントディレクトリにあるoriginal.txtというファイルの内容を、new.txtという名前で同じカレントディレクトリに複製する。もしnew.txtが既に存在していれば、通常は上書き確認のメッセージが表示され、ユーザーの同意を得てから上書きされる。
コピー先としてディレクトリを指定することも可能で、「copy original.txt C:\backup\」とすると、original.txtがC:\backupディレクトリ内にoriginal.txtという名前で複製される。複数のファイルをまとめてコピーしたい場合は、「copy file1.txt file2.txt C:\backup\」のようにコピー元を複数指定するか、ワイルドカード(*や?など)を利用して「copy *.txt C:\backup\」とすることで、カレントディレクトリ内の全てのテキストファイルをC:\backupにコピーできる。
copyコマンドにはいくつかのオプションが存在する。代表的なものとしては、/Yオプションがあり、これは上書き確認のプロンプトを抑制し、常に上書きを行う場合に利用する。例えば「copy original.txt new.txt /Y」と実行すれば、new.txtが存在していても確認なしで上書きされる。また、/Vオプションはコピーが正しく行われたかどうかを検証する。/AオプションはファイルをASCIIテキストファイルとして扱ってコピーし、/Bオプションはファイルをバイナリファイルとして扱ってコピーする。通常は/Bが既定の動作となる。注意点として、Windowsのcopyコマンドは単体ではディレクトリ(フォルダ)を再帰的にコピーする機能を持たない。ディレクトリとその中身をコピーするには、xcopyやrobocopyといった別のコマンドを使用する必要がある。
次にLinuxやUnix系環境のcpコマンドについて解説する。
cpコマンドの基本的な書式も同様に、「cp コピー元 コピー先」である。
例えば、「cp original.txt new.txt」と実行すると、カレントディレクトリにあるoriginal.txtをnew.txtとして複製する。Windowsのcopyコマンドと同様に、new.txtが既に存在している場合は、上書きされてしまう。ただし、LinuxのcpコマンドはWindowsのcopyコマンドとは異なり、既定では上書き確認は行わないため注意が必要である。
コピー先としてディレクトリを指定する例も、「cp original.txt /home/user/backup/」のように行う。複数のファイルをコピーする場合も、「cp file1.txt file2.txt /home/user/backup/」や「cp *.txt /home/user/backup/」のようにワイルドカードを利用できる。
cpコマンドにはWindowsのcopyよりもさらに多くの便利なオプションが用意されている。特に重要なのは-rまたは-Rオプションで、これはディレクトリとその中身(サブディレクトリやファイル全て)を再帰的にコピーする場合に用いる。例えば、「cp -r mydir /home/user/backup/」と実行すると、mydirディレクトリとその配下にある全てのファイルやディレクトリが/home/user/backup/に複製される。この機能はWindowsのcopyコマンドにはないため、両者の違いとして覚えておくと良い。
その他のよく使うオプションとして、-iオプションは上書き時に確認プロンプトを表示する。これは誤って重要なファイルを上書きしてしまうことを防ぐために有用である。-fオプションは、コピー先に既存の書き込み不可ファイルがあっても強制的に上書きする。-pオプションは、元のファイルの属性(最終更新日時、所有者、パーミッションなど)を可能な限り保持したままコピーする。これはバックアップなどで元のファイルの状態を維持したい場合に役立つ。-vオプションは、コピーの進行状況やどのファイルがコピーされたかを詳細に表示するため、特に多数のファイルを扱う際に便利である。
WindowsとLinuxのどちらの環境でも共通して言えることだが、パスの指定方法には注意が必要である。コピー元やコピー先のファイル、ディレクトリの場所は、カレントディレクトリからの相対パスで指定することも、ファイルシステムのルートから始まる絶対パスで指定することもできる。例えば、WindowsではC:\Users\username\Documents\file.txtが絶対パスであり、Linuxでは/home/username/documents/file.txtが絶対パスである。パスを正しく指定しないと、ファイルが見つからない、または意図しない場所にファイルが作成されるといったエラーにつながる。
copyコマンド、あるいはcpコマンドは、ファイル操作の基本中の基本であり、システムエンジニアとしてファイルやデータの管理を行う上で避けて通れないコマンドである。それぞれのOSでの挙動の違いや主要なオプションを理解し、実際に手を動かして練習することで、確実にスキルとして身につけることができる。