Windowsユーザーに贈るLinux超入門 第13回 WindowsのコピーとLinuxのコピー、何が違う?

ファイルのコピーはオペレーティングシステムにおける基本操作の1つだ。Windowsではファイルエクスプローラ(ウィンドウズエクスプローラまたは、エクスプローラ)を使ってファイルのコピーなどを行う。Linuxではcpコマンドを使ってコピーを行う。

Linuxのcpコマンド、UNIX系オペレーティングシステムのcpコマンドもそうだが、操作がシンプルでわかりやすい。ファイルエクスプローラと比較しながら、Linuxのコピー方法を紹介しよう。
○ファイルのコピー

ファイルエクスプローラでコピーを行う方法はいくつかあるが、次のようにコピーしたいファイルを選択してメニューを表示し、そこから「コピー」を選択するといった操作方法がある。

次に、コピーしたい先をファイルエクスプローラで表示させてからメニューを表示させ「貼り付け」を選択する。これで、先にコピーしたファイルがこの場所にコピーされることになる。

なお、コピー元のファイルと同じフォルダに貼り付けを行うと、名前が重複してしまう。このため、Windowsは次のように名前を変えた状態で貼り付けを実施する。

このファイル名が気に入らない場合は好きなものに変更すれば、コピーは完了となる。

Linuxではcpというコマンドを使って同じ操作を行う。次のようにcpコマンドの第1引数にコピー元ファイルを指定し、第2引数にコピー先ファイルまたはコピー先のディレクトリを指定する。
cpコマンドの基本的な使い方

cp ファイルパス ファイルパスorディレクトリパス

WSLで動作するUbuntu 18.04 LTSでcpコマンドを実行した結果を次に示す。慣れてしまえば、ファイルエクスプローラのようなGUIを使うよりも簡単に作業できるようになる。

cpコマンドは最後の引数がディレクトリになっていれば、複数のファイルを指定することもできる。その場合、指定したファイルがすべて最後に指定したディレクトリの下にコピーされることになる。
○ディレクトリのコピー

ファイルエクスプローラでフォルダごとコピーをする場合は、Ctrlキーを押した状態でフォルダをドラッグ&ドロップしてコピーしたい場所へ持っていく。こうすると、フォルダをまとめてコピーする操作が実行される。

フォルダの中に大量のファイルがありコピーに時間がかかる場合は、次のようにファイルをコピーしている様子がプログレスバーに表示される。

ファイルの時と同じように、同じフォルダにコピーを行うとフォルダ名が別の名前に変更される。必要に応じてフォルダ名を変更すればコピーは完了だ。

Linuxでディレクトリごとコピーを行う場合もcpコマンドを使用する。cpコマンドにオプションとして-rを指定すると、ディレクトリを再帰的にコピーするようになる。要するに、ディレクトリ以下まるごとコピーが行われる。
cpコマンドでディレクトリをまるごとコピーする方法

cp -r ディレクトリパス ディレクトリパス 

cpコマンドでディレクトリをコピーすると次のようになる。ディレクトリ以下に大量のファイルがあって完了するまでに時間がかかる場合、次のようにしばらくプロンプトが表示されずにコマンドの実行が続くことになる。

コピーが完了すると次のようにプロンプトが戻ってくる。

このように、Linuxではファイルのコピーもディレクトリのコピーもcpコマンドで実行する。Windowsではファイルエクスプローラを使うところだが、慣れたらLinuxのcpコマンドのほうが便利に感じるだろう。

なお、Windowsにはcopyとxcopyというコマンドがあり、ファイルをコピーする場合はcopyコマンドを、フォルダをコピーする場合にはxcopyコマンドを使う。動きはLinuxのcpコマンドとかなり違うので、これらを使う場合はLinuxのcpコマンドとは別物と思って、事前に調べてから使ったほうがよいだろう。