ディレクトリごとcpコマンドでコピーする方法:オプションや使い方を解説

Linux基本コマンド集
スポンサーリンク

ファイルやフォルダを整理しているとき、特定のディレクトリを丸ごとコピーする必要がある場面に遭遇することがあります。LinuxやmacOSを利用している場合、「cpコマンド」がそれを手助けしてくれます。しかし、cpコマンドの適切な使い方を知っているかどうかで、作業の効率が大きく異なります。この記事では、ディレクトリをcpコマンドでコピーする方法や、使用できるさまざまなオプションについて解説します。

cpコマンドの基本

cpコマンドは「copy」の略で、主にファイルやディレクトリを指定した新しい場所にコピーする際に使用されます。基本的な使い方は以下の通りです:

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

しかし、単純なファイルコピーと異なり、ディレクトリをコピーする際には特定のオプションが必要です。それでは代表的なオプションを見ていきましょう。

ディレクトリを丸ごとコピーする:-rオプション

ディレクトリごとコピーする基本的な方法は「-r」オプションを使用することです。「-r」は「recursive(再帰的)」を意味し、cpコマンドに対してディレクトリの中身をすべてコピーするよう指示します。

cp -r /path/to/source_directory /path/to/destination_directory

このコマンドを実行することで、source_directoryに含まれるファイルおよびサブディレクトリもすべてdestination_directoryにコピーされます。

より安全なコピーを実現する:-iオプション

コピー先に同名ファイルが存在する場合、cpコマンドはデフォルトでそのファイルを上書きします。上書きを避けたい場合は、「-i(interactive)」オプションを使用しましょう。このオプションは、上書き前に確認メッセージを表示します。

cp -ri /path/to/source_directory /path/to/destination_directory

このコマンドを実行すると、コピーする前に確認メッセージが表示され、同名ファイルを上書きするかどうか選択できます。

コピー過程を表示する:-vオプション

ディレクトリをコピーする際の進行状況を知りたい場合、「-v(verbose)」オプションが便利です。このオプションを追加すると、コピー中の各ファイルやディレクトリが画面に表示されるため、安心感が得られます。

cp -rv /path/to/source_directory /path/to/destination_directory

実行中に何が行われているのかを確認でき、特に大量のファイルを扱う場合に役立ちます。

ファイルの属性を保持する:-aオプション

ファイルのオリジナルの属性(例えば権限やタイムスタンプ)をそのまま維持した状態でコピーしたい場合は、「-a(archive)」オプションが有効です。「-a」オプションは「-r」と多くの属性保存オプションを組み合わせたものと考えてよいです。

cp -a /path/to/source_directory /path/to/destination_directory

この方法を用いることで、元のファイルの状態を極力保持することが可能になります。

上書き確認+詳細表示:-vと-iの組み合わせ

コピーの進行状況を可視化しつつ、上書き時に確認メッセージを出すには、「-v」と「-i」を組み合わせるのが効果的です。

cp -rvi /path/to/source_directory /path/to/destination_directory

このコマンドは、一つ一つの動作を確認しながら作業を進めたい場合に非常に有効です。

末端のスラッシュの扱い

コマンドを入力する際、ディレクトリのパスの末尾にスラッシュ(/)を付けるかどうかでも動作が異なります。コピー元のディレクトリパスの末尾にスラッシュを付けると、その中身だけがコピー先に移されます。スラッシュを付けない場合は、ディレクトリ自身がコピーされます。

例えば:

cp -r /path/to/source_directory/ /path/to/destination_directory

このコマンドではsource_directoryの中身だけがdestination_directoryにコピーされます。対して:

cp -r /path/to/source_directory /path/to/destination_directory

このコマンドではsource_directoryごとdestination_directoryにコピーされます。

コピーに失敗したときのチェックポイント

  • パーミッションエラー:コピー先のディレクトリに書き込み権限があるか確認します。
  • ディスク容量:コピー先ストレージの空き容量が不足していないか確認します。
  • ファイル名の競合:必要であれば「-i」オプションで上書き確認を行うか、「-n(no-clobber)」オプションを試みます。

まとめ

cpコマンドは、Linux/macOSユーザーにとって非常に有効なツールであり、ディレクトリを丸ごとコピーする際にも、便利なオプションが多数揃っています。また、各オプションを組み合わせることで、安全かつ確実なコピーを実現できます。上記のポイントを押さえて、賢くcpコマンドを使いこなしてみましょう。

コメント