【コマンド詳細】cpの使い方とオプションまとめ

  • URLをコピーしました!
目次

cpコマンドとは

cpコマンドは、Linuxにおけるファイルやディレクトリのコピーに使用されます。
ファイルを別のディレクトリに移したり、バックアップを作成する際などに便利です。
cpはコピー元とコピー先を指定し、多くのオプションで動作をカスタマイズできます。

オプション一覧

オプション説明
-i上書き確認を求める(interactive)。
-rディレクトリを再帰的にコピーする。
-uコピー先のファイルがコピー元よりも古い場合のみコピー。
-vコピーの進行状況を表示(verbose)。
-pコピーするファイルの属性(パーミッション、タイムスタンプなど)を保持。
--preserve指定した属性(例: mode, ownership, timestamps)を保持。
-aアーカイブモードで、-dR --preserve=allと同等。すべての属性を保持しつつ再帰的にコピー。
-fコピー先ファイルが存在する場合に強制的に上書きする。

オプションごとの詳細と使用例

-i オプション:上書き確認

このオプションは、コピー先に同名のファイルが存在する場合に上書き確認を求めます。
誤って重要なファイルを上書きするのを防ぐのに役立ちます。

使用例

cp -i source.txt destination.txt
  • 表示結果:「destination.txt を上書きしますか?(y/n)」と尋ねられます。

-r オプション:ディレクトリの再帰的コピー

cpは通常、ファイルしかコピーしませんが、-rオプションを使うと
ディレクトリ内のファイルもすべてコピーできます。

使用例

cp -r /home/user/source_directory /home/user/destination_directory
  • 表示結果source_directoryとその内容がdestination_directoryにコピーされます。

-u オプション:更新コピー

コピー先に同名のファイルがある場合、コピー元よりも古い場合のみ上書きします。
バックアップ作成時に便利です。

使用例

cp -u source.txt destination.txt
  • 表示結果destination.txtsource.txtよりも古ければ上書きされます。新しい場合は変更なし。

-v オプション:進行状況の表示

コピー中のファイル名やパスを表示するため、進行状況が確認できます。
特に大きなディレクトリをコピーする際に役立ちます。

使用例

cp -v source.txt destination.txt
  • 表示結果:「'source.txt' -> 'destination.txt'」と表示され、進行状況が確認できます。

-p オプション:属性の保持

このオプションを使うと、コピー元ファイルのパーミッションや
タイムスタンプがそのまま保持されます。

使用例

cp -p source.txt destination.txt
  • 表示結果destination.txtsource.txtのパーミッションやタイムスタンプがそのままコピーされます。

--preserve オプション:指定属性の保持

--preserveオプションを使うと、保持する属性をさらに細かく指定できます。

使用例

cp --preserve=mode,ownership,timestamps source.txt destination.txt
  • 表示結果:指定した属性のみを保持してコピーされます。

-a オプション:アーカイブモード

アーカイブモード(-a)は、-dR --preserve=allと同じ効果で、
すべての属性を保持しつつ再帰的にディレクトリをコピーします。バックアップ用途に便利です。

使用例

cp -a /home/user/source_directory /home/user/destination_directory
  • 表示結果source_directory内のすべてのファイルが、属性を保持したままコピーされます。

-f オプション:強制上書き

-fオプションを使うと、コピー先ファイルが存在する場合に強制的に上書きします。

使用例

cp -f source.txt destination.txt
  • 表示結果:上書き確認なしでdestination.txtが上書きされます。

注意点

  • cpコマンドは誤って重要なファイルを上書きしてしまう可能性があるため、上書き確認の-iオプションを習慣として使うことが推奨されます。
  • 特にシステムファイルをコピーする際には-p--preserveオプションを使用して、元のパーミッションや所有者情報を保持することが重要です。
    目次