Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

【Linux入門】cpコマンドの使い方:ファイルとディレクトリのコピー方法を徹底解説

本チュートリアルでは、Linuxのcpコマンドを使ってファイルやディレクトリをコピーする方法を、具体例とともにわかりやすく解説します。

Linuxは世界で最も広く利用されているOSのひとつであり、すべてのAndroidデバイスの基盤となっています。オープンソースである点が最大の特徴で、WindowsやmacOSなど他のOSと比べて多くの利点を持っています。

Linuxには数多くのコマンドが用意されており、プログラマーやエンジニアは日々の作業の中でこれらのコマンドを使いこなしています。

cpコマンドとは?

cp(copy)コマンドは、Linuxのコマンドの中でも最も基本的かつ使用頻度の高いコマンドのひとつです。ファイルやディレクトリをある場所から別の場所へコピーするために使用されます。ファイルをコピーする際、元のファイル名はそのまま保持されますが、必要に応じてコピー先のファイル名を変更することも可能です。

cpコマンドの基本構文

cpコマンドの一般的な構文は以下のとおりです。

cp [オプション] [コピー元] [コピー先]

よく使われる主なオプション

-v    詳細表示モード(進行状況を表示)
-n    既存のファイルを上書きしない
-d    シンボリックリンク自体をコピーする
-r/R  ディレクトリを再帰的にコピーする
-i    上書き前に確認メッセージを表示する
-b    上書きされる既存ファイルのバックアップを作成する
-p    指定した属性(パーミッションなど)を保持する

ファイルとディレクトリのコピー方法

ここからは、cpコマンドを使ってファイルやディレクトリをコピーする具体的な方法を順番に見ていきましょう。

ファイルをコピーする方法

cpコマンドでファイルをコピーするには、コピーしたいファイル名に続けてコピー先を指定します。

次の例では、「linxscrew.txt」というファイルを「linxscrew_updated.txt」という新しいファイルとしてコピーしています。cpコマンドを実行すると、新しいファイルも自動的に作成されます。

cp linxscrew.txt linxscrew_updated.txt

実行結果:

ls
linxscrew.txt  linxscrew_updated.txt

複数のファイルを別の場所へコピーする方法

複数のファイルを一度にコピーする場合は、コピー元のファイル名をスペースで区切って列挙し、最後にコピー先のディレクトリを指定します。次の例では、「linxscrew1.txt」「linxscrew2.txt」「linxscrew3.txt」の3つのファイルを「/home/docs」から「/home/new_docs」へコピーします。

cp /home/docs/linxscrew1.txt /home/docs/linxscrew2.txt /home/docs/linxscrew3.txt /home/new_docs

ファイルが正しくコピーされたかどうかを確認するには、lsコマンドを使用します。

ls -lh /home/new_docs

ディレクトリをコピーする方法

cpコマンドはデフォルトではディレクトリの中身をコピーしません。ディレクトリを再帰的にコピーするには、-rオプションを付けて実行します。これにより、サブディレクトリを含むディレクトリ全体がコピー先にコピーされ、ディレクトリ名はそのまま維持されます。

次のコマンドでは、「linuxscrew」ディレクトリ全体(サブディレクトリを含む)を「docs」から「new_docs」へコピーします。

cp -r /home/docs/linuxscrew/ /home/newdocs/

複数のディレクトリをコピーする方法

単一のディレクトリのコピーと同様に、1つのコマンドで複数のディレクトリをまとめて再帰的にコピーすることもできます。次の例では、「linuxscrew_files」と「linuxscrew_images」の2つのディレクトリを「/home/all_linuxscrew_docs」へコピーしています。

cp -r /home/linuxscrew_files/ /home/linuxscrew_images/ /home/all_linuxscrew_docs/

特定の拡張子のファイルだけをコピーする方法

特定の形式のファイルのみをコピーしたい場合は、ワイルドカード「*」を拡張子と組み合わせて使用します。次の例では、拡張子が.txtのファイルをすべてコピー先のディレクトリへコピーしています。この方法は、他の拡張子に対しても同様に活用できます。

cp /home/linuxscrew/*.txt /home/text_files/

既存ファイルの上書きを防ぐ方法

Linuxでファイルをコピーする際に、既存のファイルを上書きされたくない場合は-nオプションを使用します。このオプションを付けると、コピー先に同名のファイルが存在しない場合のみコピーが実行されます。同名のファイルがすでに存在する場合は、コマンド自体は実行されますが、何も変更されません。次の例では、ファイル名は「linuxscrew.txt」です。

cp -n /home/linuxscrew/linuxscrew.txt /home/all_linuxscrew_docs/

シンボリックリンクをコピーする方法

デフォルトでは、シンボリックリンクはコピー操作の対象から除外されます。リンクファイル自体をコピーしたい場合は、次のように-dオプションを使用します。

cp -d /home/linuxscrew/linuxscrew.txt /home/all_linuxscrew_docs/
  1. LinuxでZipファイルを解凍する方法|GUIとコマンドラインの使い方を徹底解説

    Zipファイルは、ダウンロード速度が遅く1バイトでも節約が重要だった時代ほど頻繁には使われなくなりました。それでも今なお広く普及しているファイル形式の一つであり、いずれ開く必要に迫られることもあるでしょう。使用しているディストリビューションにもよりますが、Zipアーカイブの展開自体は比較的簡単です。とはいえ、より高度な操作方法や応用的なテクニックを知っておけば、いざというときにきっと役立ちます。GUIを使ってZipファイルを解凍する多くのLinuxデスクトップ環境では、Zipファイルの解凍は非常に簡単です。ファイルを右クリックすると複数のオプションが表示され、通常は「ここで展開」や「ここに解凍

  2. Linuxのlsコマンド徹底解説!ファイルとディレクトリを一覧表示する方法

    Linuxのlsコマンドは、多くのユーザーが最初に使うことになる基本コマンドの一つです。この記事では、lsコマンドの基本的な使い方と、実務で頻繁に利用されるオプションについてわかりやすく解説します。 筆者が普段よく使うオプションの組み合わせは以下のとおりです。 ls -Zaltrh それでは、各オプションの意味をひとつずつ掘り下げながら、この組み合わせがなぜ便利なのかを説明していきます。 lsコマンドの基本構文 # ls [OPTION] [FILE] OPTIONS: [-a] 「.」または「..」で始まる隠しエントリを無視しない [-h] -lと併用した場合、サイズを人間が読みやすい形式で