こちらからSWELLを購入できます 詳しくはこちら

cpコマンド ディレクトリやファイルをコピー、ハード・シンボリックリンクも作れる【Linux】

  • URLをコピーしました!

今回はLinuxコマンドであるcpコマンドについて解説します

cpコマンドはディレクトリやファイルを削除するLinuxの基本コマンドです
ぜひ覚えて帰ってくださいね!
※注 本文の△は半角スペースに置き換えてください。わかりやすくするために△で記述してます

スポンサーリンク
目次

cpコマンドとは??

cpコマンドはディレクトリやファイルをコピーするコマンドです
ファイル、フォルダをコピーする際に使用します
「copy」を省略して「cp」になっています
指定の仕方としては、「cp△コピー元△コピー後ファイル名」と指定します(ディレクトリをコピーする場合は「-r」か「-R」オプションを使用します)
コピー元のファイルをコピー後ファイル名でコピーします
また、ファイルを複数指定してコピーすることも可能です

「*」はメタキャラクタと呼ばれる特殊文字で、直前の文字を0回以上繰り返します
「./」でカレントディレクトリを表すので、「./*」でカレントディレクトリ配下の全ファイルを指定してコピーしています
あるディレクトリ配下のファイルのバックアップをしたいときに使うと早くて便利です

コマンド実行例
cp△ファイル名
cp△ファイル1△ファイル2△ファイル3△コピー先ディレクトリ名

普通にファイルをコピーする場合

ファイルを複数指定している場合

./*で全ファイルを指定している場合

cpコマンドの主なオプション

オプション意味
-i (--interactive)コピー先に同じファイルがあった場合上書きしていいか確認する
-f (--force)ユーザへの確認を行わず強制的にコピーする
-r,-R (--recursive)サブディレクトリ含め、再帰的にディレクトリ全体をコピーする
-b (--backup)コピー先に同名のファイルがあればバックアップを取ってから上書きする
-v (--verbose)削除処理を行う際の詳細情報を表示する
-s (--symbolic-link)シンボリックリンクを作成する
-l (--link)ハードリンクを作成する
-n (--no-clobber)コピー先に同名のファイルやディレクトリがあったら上書きしない
-p (--preserve)元ファイルのオーナ、グループ、パーミッション、タイムスタンプごとコピーする
-S△接尾語 (--suffix=接尾語)バックアップファイルを作る際のファイル名末尾に着ける文字を指定する
-dシンボリックリンク自体をコピーする

-i (–interactive)

コピー先に同じファイルがあった場合上書きしていいか確認するオプション
「interactive」のiです

エイリアス機能というコマンドをひとまとめにできる機能があるのですが、「cp」だけで「cp△-i」を呼び出してくれる設定がしてある可能性があります
その場合「cp」コマンドのみでも「cp△-i」の働きをしてくれます
「alias」コマンドを引数なしで実行することで、現在設定されているエイリアス機能を確認することが出来ます
「alias△cp△=’cp△-i’」と記載があったらcpコマンドのみでも「cp△-i」の働きをしてくれますよ

コマンド実行例
cp△-i△コピー元△コピー後ファイル名

-f (–force)

ユーザへの確認を行わず強制的にコピーするオプション
よくオプションは頭文字がつけられることが多いのですが、
こちらは「force」の頭文字のfと覚えましょう
先ほど「-i」コマンドで説明しましたが、cpコマンドにエイリアス機能がついている可能性があります
その場合「-f」オプションを使用しても強制的にコピーせずに確認してくれます
エイリアス機能がいらない場合は「unalias△cp」でcpコマンドのエイリアス機能を削除してあげましょう
個人的にはエイリアス機能は入れてあるのがおすすめなので、削除しない方が良いと思います
下記実行コマンドでは、エイリアス機能を削除しています

コマンド実行例
cp△-f△コピー元△コピー後ファイル名

-r,-R (–recursive)

サブディレクトリ含め、再帰的にディレクトリ全体をコピーするオプション
ディレクトリをコピーする場合、「-r」「-R」オプションを使用しないとコピーできません
下記実行結果は「-r」オプションのみですが、「-R」オプションでも同じように使用することが出来ます

コマンド実行例
cp△-r△コピー元△ディレクトリ名
cp△-R△コピー元△コピー後ディレクトリ名

-b (–backup)

コピー先に同名のファイルがあればバックアップを取ってから上書きするオプション
コピー先の元のファイル名が「既存ファイル名~」に変わって、コピー元のファイル名が指定したファイル名に変わります

コマンド実行例
cp△-b△コピー元△コピー後ファイル名

-v (–verbose)

削除処理を行う際の詳細情報を表示するオプション
「`コピー元’ -> `コピー後ファイル名’」 と表示されます

コマンド実行例
cp△-v△コピー元△コピー後ファイル名

-s (–symbolic-link)

シンボリックリンクを作成するオプション
「ln△-s△」でシンボリックリンクを作成するのですが、「cp△-s」コマンドでもシンボリックリンクを作成することが出来ます
シンボリックリンクはファイル名でもディレクトリ名でも可能です

コマンド実行例
cp△-s△シンボリックリンク元△シンボリックリンク名

-l (–link)

ハードリンクを作成するオプション
lnコマンドでハードリンクを作成するのですが、「cp△-l」コマンドでもハードリンクを作成することが出来ます
「ls△-△li」コマンドでiノード番号が同じことが確認できるので、ハードリンクが作成されていることがわかります

コマンド実行例
cp△-l△ハードリンク元△ハードリンク名

-n (–no-clobber)

コピー先に同名のファイルやディレクトリがあったら上書きしないオプション
コピー先のファイルをどうしても上書きしたくないときに使います
ファイルがある場合は上書きされず「cp」は実行されません

コマンド実行例
cp△-n△コピー元△コピー後ファイル名

-p (–preserve)

元ファイルのオーナ、グループ、パーミッション、タイムスタンプごとコピーするオプション

コマンド実行例
cp△-p△コピー元△コピー後ファイル名

-S△接尾辞 (–suffix=接尾辞)

バックアップファイルを作る際のファイル名末尾に着ける文字を指定するオプション
よく日付でバックアップファイルを作成することがあるのですが、そういう時に
「-S△_$(date△+%Y%m%d)」を指定してあげるとコピー元ファイルの名前がコピー先にあった場合に
コピー先ファイルの後にYYYYMMDD(年月日)が入るようになります
下の実行結果を見ていただければわかると思うのですが、元あったfileBBファイルが「fileBB_日付」としてバックアップファイルが作成され、fileAAをfileBBとしてコピーしています

コマンド実行例
cp△-S△接尾辞△コピー元△コピー後ファイル名

-d

シンボリックリンク自体をコピーするオプション
シンボリックをコピーする際に「-d」オプションを入れてあげないとシンボリックリンクではなく、ただのファイルとしてコピーされてしまいます

下記実行結果では、DirB/DirD配下にシンボリックリンク元ファイルのfileAAがないため、シンボリックリンクfileAA_sym2がうまく機能しません
その場合はDirB/DirD配下にfileAAファイルを作成すればシンボリックリンクが機能するようになります

コマンド実行例
cp△-d△シンボリックリンク元△コピー後シンボリックリンク名

まとめ

いかがでしたでしょうか
今回はcpコマンドについてまとめてみました
cpコマンドはディレクトリやファイルの削除ができるコマンドでLinuxの基本コマンドです
mvコマンドやrmコマンドとオプションが似ているのでmv、rmコマンドも一緒に覚えてしまいましょう!

↓あわせて読みたい↓
rmコマンド ディレクトリやファイルを削除【Linux】

↓あわせて読みたい↓
mvコマンド ディレクトリやファイルの名前を変更、指定場所に移動【Linux】

スポンサーリンク

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次