【Linux】cpコマンドのオプションについて

linux

cpコマンドとは

cpコマンドとはファイルやディレクトリをコピーするコマンドになります。Linuxを使用する方なら一度は使用したことのあるコマンドだと思います。

単純にコピーするだけであればcpコマンドを入力するだけですが、オプションを覚えることで、作業の効率化を図れると思いますので、確認しておきましょう。

cpコマンドの仕様

オプションの前に簡単なcpコマンドの仕様を説明させていただきます。大きく分けてコピーの仕様には以下の二つがあります。

  • ファイルAをディレクトリAにコピー
  • ファイルAをディレクトリAにファイル名Bとしてコピー

ファイルAをディレクトリAにコピー

言葉で記載するとわかりづらいかもしれませんが、コピー元のファイルをコピー先のディレクトリにコピーするだけになります。コマンドとしては「cp [コピー元] [コピー先]」になります。以下に例を載せておきます。

ここでの注意点ですが、ファイルを指定したディレクトリコピーする際は、コピー先の最後に必ず「/」を付けましょう。これを付けないとディレクトリとして扱われず、testというファイルに名称を変更してコピーすることになります。

ファイルAをディレクトリAにファイル名Bとしてコピー

上記で少し話しましたが、ファイル名を変更してコピーする方法となります。先ほどは最後にスラッシュを付けてディレクトリにコピーしましたが今回は「/」を指定しません。以下に例を載せておきます。

cpコマンドのオプション

cpコマンドには様々なオプションがあります。オプションは色々ありますが、普段使わないようなオプションもあるので、今回はある程度使用頻度が高いものを紹介致します。これだけ覚えておけばcpコマンドで困ることはありません。

オプションオプションの説明
-b上書きするファイルのバックアップを作る
-dシンボリックリンクをコピーする
-f強制的にファイルをコピーする
-iファイルをコピーする前に確認する
-pパーミッションと所有者とタイムスタンプを保持する
-rディレクトリをコピーする
-sシンボリックリンクを作成する
-uコピー元のファイルがコピー先ファイルより新しいか新規ファイルの場合だけコピーする
-v実行内容を表示する

cp -bオプション

cp -bオプションはコピーする際に、コピー先の名称が既に存在する場合、上書き対象のファイルのバックアップを作成してくれます。これにより、ファイルの削除を防ぐことができます。

cp -dオプション

cp -dオプションはファイルのコピーではなくシンボリックリンクをコピーします。普通にcpコマンドでコピーするとシンボリックリンク先のファイルをコピーすることになります。

cp -fオプション

cp -fオプションは強制的にファイルを上書きします。ファイルを上書きする際には、基本的には「上書きしますか?」の確認メッセージが表示されますが、-fを付けることで、確認メッセージを無視することができます。

cp -iオプション

cp -iオプションは上書き前にファイルの上書き確認をします。-fオプションの逆のオプションになります。

cp -pオプション

cp -pオプションはコピー先のファイルにパーミッションと所有者とタイムスタンプを保持します。
パーミッションや所有者については「chmod」「chown」コマンドの章で説明します。cpコマンドを使用する際には、とりあえずこの-pオプションを付けておくべきです!

cp -rオプション

cp -rオプションは使用頻度の高いオプションになります。-rオプションを付けることでファイルだけでなくディレクトリ毎コピーすることができます。

最後に

私はSierとして9年間働いて、色々なプロジェクト関わっていますが、今までの開発は全てLinuxサーバになります。周りの方に話を聞いても今までの開発がWindowsサーバではなくLinuxサーバの方が多いという方の方が多い気がします。

Linuxについて詳しくなれば転職等に有利になると思うので、是非勉強しましょう!

世界的に有名なオンラインサイトで勉強しよう!

プログラミングの勉強や、Linux・Windowsの勉強等したい時に、参考書を購入して勉強することが多いと思いますが、参考書を買うぐらいならオンラインサイトで勉強した方がいいです。現役エンジニアの生の声を聞くこともできますし、初学者の方からベテランの方まで勉強できます。私は、世界的に有名な「Udemy」をおススメします。気になる方は確認してみてください。

Linuxを勉強して転職しよう!

エンジニアは転職してなんぼの職種です。就職難の昨今でもエンジニアは現場に人が足りていません。そのため、ある程度のお金を払っても入社してくれる方を探している企業が多いのが現状です。
また、会社にもよりますが、多くの会社は入社してから数年間は雀の涙程度の給料しかあがっていきません。ただ、転職することで、100万円単位で年収が上がっていくこともざらにあります。
エンジニアは転職してキャリアアップしていく職種と言えます。

コメント

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