[cp]ディレクトリやファイルのコピー〜Linuxコマンド

コマンド一覧

[cp]ディレクトリやファイルのコピーコマンドの基本的な使い方とオプション〜linuxコマンド

coコマンドの使い方とオプション

cpコマンドの基本的な使い方

cpは「copy」の略で、ディレクトリやファイルをコピーするコマンドになります。

通常のコピー

「cp」コマンドの基本書式は、以下の通りです。

$ cp [コピーするファイル名] [コピー後のファイル名]

例えば、ファイル名「test1」のコピーを作成してコピー後のファイル名を「test2」とする場合は、

$ cp test1 test2

とすればコピーできます。この時コピー後のファイルを別なディレクトリに作成することも可能です。例えば、コピーしたファイルをディレクトリ「var」に置く場合は、下記のようになります。

$ cp test1 /var/test2

ファイル名を変更しないで別のディレクトリにコピー

ファイル名を変更しないで、同じ名前で別のディレクトリにコピーする場合は、コピー先のディレクトリ名を記載します。

$ cp [コピーするファイル名] [コピー先のディレクトリ名]

例えば、「var」ディレクトリの中に「test1」のコピーを作成する場合は、

$ cp test1 /var

となります。

さらに、「var」ディレクトリの中の「www」ディレクトリの中に「test1」のコピーを作成する場合は、

$ cp test1 /var/www

という感じになります。

複数のファイルを同時にコピー

複数のファイルをコピーしたい場合は、コピーするファイルの名称をそのまま書いてあげます。

$ cp [コピーするファイル名1] [コピーするファイル名2] [コピー先のディレクトリ名]

例えば、「var」ディレクトリの中に「test1」、「test2」のコピーを作成する場合は、

$ cp test1 test2 /var

となります。

cpコマンドのオプション

「cp」コマンドにはいくつかのオプションが備わっています。

一般的なオプション

-i(--interactive) 「インタラクティブ」

別なディレクトリに同名のファイルが存在した場合、cpコマンドによりコピー先のディレクトリにある同名のファイルは上書きされます。上書きするかどうかを事前に確認したい場合に使用するオプションになります。

「cp」で「-i」オプションコマンドの基本書式は、

$ cp -i [コピーするファイル名] [コピー後のファイル名]

となります。例えば下記のような場合、

$ cp test1 test2 /var

test1のファイルをtest2という名前にしてコピーしてるのですが、コピー先のディレクトリ「var」に「test2」があった場合、上書きされてしまいます。「-i」オプションを使用することにより、確認メッセージが表示されます。例えば、「var」ディレクトリの中に「test1」、「test2」のコピーを作成しようとした時、「var」ディレクトリの中に「test2」というファイルがすでに存在した場合、

$ cp -i test1 test2 /var

とした時に、

cpコマンドで上書きを確認する表示

という確認メッセージが表示されます。問題なければyを入力して実行します。上書きをしたくなければnを入力します。

-v( --verbose) 「ヴァーボウス」

コピーしたファイル名を表示し確認できます。

「cp」で「-v」オプションコマンドの基本書式は、

$ cp -v [コピーするファイル名]  [コピー先のディレクトリ名]

となります。例えば下記のような場合、

$ cp -v test1 /var

コピー結果の表示

というようにコピーの結果が表示されます。

-p

パーミッションと所有者とタイムスタンプを保持するオプションになります。cpは指定がなければ、状況によってシステムで規定されたパーミッションが決定されますが、このオプションを仕様することで元々保持しているパーミッションでのコピーが可能になります。

「cp」で「-p」オプションコマンドの基本書式は、

$ cp -p [コピーするファイル名]  [コピー先のディレクトリ名]

となります。例えば、ファイル「test1」をディレクトリ「var」にコピーする時、パーミッションを変更しない場合は下記のようになります。

cp -p test1 /var

-b( --backup) 「バックアップ」

上書き時にバックアップファイルを生成できるオプションになります。ファイルを書き換える時などにバックアップをとっておく癖をつけると、不具合が起こった時にすぐに復旧できる利点があります。

「cp」で「-b」オプションコマンドの基本書式は、

$ cp -b [コピーするファイル名] [コピー後のファイル名]

となります。例えば、ファイル名「test1」のコピーを作成してファイル名を「test2」に上書きコピーする場合は、

cp -b test1 test2

となります。この時バックアップファイルは「test2~」という名称で作成されます。「test2」の内容は「test1」の内容に上書きされますが、元の「test2」の中身は「test2~」でバックアップされたことになります。

-b( --suffix) 「サフィックス」

バックアップ時に後ろにつける文字列は「~」だけではなく、指定することも可能です。文字列を指定指定する場合のオプションは「--suffix=」となり、基本書式は

$ cp -b --suffix=[任意の文字列] [コピーするファイル名] [コピー後のファイル名]

となります。例えば、、ファイル名「test1」のコピーを作成してファイル名を「test2」に上書きコピーした時のバックアップファイル名を「test2backup」とする場合は、下記のようになります。

cp -b --suffix=backup [test1] [test2]

この操作により「test2backup」というバックアップファイルが生成されます。

その他にもバックアップ時の日付を付けたいと言った場合は、「=_$(date +%Y%m%d)」を使用します。

$ cp -b --suffix=_$(date +%Y%m%d) [test1] [test2]

となり、バックアップファイル名は「test2_20181028」と言ったように今日の日付を後ろに付けることができます。

 

ディレクトリのコピー

ディレクトリのコピーはオプション「-r」を使用

ディレクトリのコピーを行うときは「-r」( --recursive) 「リカーシブ」オプションを使用します。「recursive」は再帰的という意味があり、コンピューター上でのある作業中に、さらに同じ作業を呼びだして処理することとされています。コピーするデイレクトリの中に複数のディレクトリがあって、更にその中にも複数のディレクトリがあって、更にその中に...っていった場合、一番上位にあるディレクトリを「cp」することにより、その中にあるディレクトリに対しても同様の「cp」を繰り返すという処理になります。その結果、全てのディレクトリがコピーされることになります。

基本書式は、

$ cp -r [コピーするディレクトリ名] [コピー先のディレクトリ名]

となり、例えば、ディレクトリ名「test1」を、新規にディレクトリ「test2」を作成し、コピーする場合は下記のようになります。

$ cp -r test1 test2

となります。この時新たに「test2」というディレクトリが作成されますが、当然中身は「test1」と同じになります。

※ディレクトリ「test2」が存在する場合は、「test2」内にディレクトリ「test1」が作成されます。

 

コメント

タイトルとURLをコピーしました