[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

cp【コマンド】

pointこの用語のポイント

pointUNIX系で使えるコマンドだよ

pointファイルやディレクトリをコピーするよ

スポンサーリンク

簡単に書くよ

cp【コマンド】とは

ファイルやディレクトリをコピーするときに使うコマンド
です。

image piyo

詳しく書くよ

UNIX系(LinuxとかMacとか)で使えます。

書き方は

cp [オプション] [対象のファイルディレクトリ] [コピー先の場所と名前]

もしくは

cp [オプション] [対象のファイルやディレクトリ(半角スペース区切りで複数指定可能)] [コピー先の場所]

です。
オプションはいっぱいあります。

オプション説明
-aアクセス権とかをできる限りそのままコピーする
-b上書きされるときは無くなる方のバックアップを作成してから上書きする
-dシンボリックリンクハードリンクをそのままリンクとしてコピーする
-f「上書きして良い?」って訊いてこない
-i「上書きして良い?」って訊いてくれる
-lファイルを指定した場合、ハードリンクになる
-pできる限りそのまま(更新日時とかも保持して)コピーする
-rディレクトリの中身もコピーする
-sファイルを指定した場合、シンボリックリンクになる
-tコピー先を明示的に指定する
-uファイルやディレクトリが新しいときのみ上書きする
-v「このファイルをこんな名前でどこにコピーしたよー」と報告してくる
-H対象がシンボリックリンクの場合、リンク先をファイルやフォルダとしてコピーする。「-r」「-R」オプションと一緒に使う
-Lシンボリックのリンク先もファイルやフォルダとしてコピーする。「-r」「-R」オプションと一緒に使う
-Pシンボリックをそのままリンクとしてコピーする。「-r」「-R」オプションと一緒に使う
-Rディレクトリの中身もコピーする
-S「-b」オプション指定時に作成されるバックアップのサフィックスを指定する

などですね。
オプションは複数組み合わせて指定できます。

「cp」コマンドコマンドライン上からファイルやディレクトリをコピーする際に使います。

オプションの中では「-H」「-L」「-P」が分かりづらいですかね。
これらのオプションは「-r(-R)」オプションと併用して使います。

簡単な方から行きましょう。
まずは「-L」と「-R」の違いです。

例えば「aaa/bbb/ccc.txt」があったとします。
そして「ddd/sl_bbb」という「aaa/bbb/」を指したシンボリックリンクがあったとします。

この状態で

cp -RP ddd ddd_2

を実行すると、

ddd_2/(ディレクトリ)
ddd_2/sl_bbb(シンボリックリンク)


が作られます。

一方

cp -RL ddd ddd_3

を実行すると、

ddd_3/(ディレクトリ)
ddd_3/sl_bbb(ディレクトリ)
ddd_3/sl_bbb/ccc.txt(ファイル)


が作られるのです。

「-H」も「-R」と似たような動きをしますが、コピー元のファイルがシンボリックリンクの場合に使います。
例えば

cp -R ddd/sl_bbb sl_fff

を実行すると

sl_fff(シンボリックリンク)

が作られます。
一方

cp -RH ddd/sl_bbb sl_ggg

を実行すると、

sl_ggg(ディレクトリ)
sl_g/ccc.txt(ファイル)


が作られるのです。
長々と書いてしまいましたが、そんな感じ。

オプションがいっぱいあって覚えるのが大変そうですが、心配はいりません。

・「-f」:「上書きして良い?」って訊いてこない
・「-i」:「上書きして良い?」って訊いてくれる
・「-p」:できる限りそのまま(更新日時とかも保持して)コピーする
・「-r」:ディレクトリの中身もコピーする


だけ覚えておけば、ほぼ事足りますよ。

対象を指定しないで

cp [オプション]

もしくは

cp [-t以外のオプション] [対象 or コピー先片方]

と打った場合、怒られます。

あと余談ですが「cp」は「copy(コピー)」の略です。

image piyo2

一言でまとめるよ

まぁ「cp」ってコマンドが出てきたら「ファイルやディレクトリをコピーするときに使うんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク