cp コマンドの使い方 [Linux]

2025/04/25

cp コマンドとは?

cp コマンドは、LinuxやUnix系OSでファイルやディレクトリをコピーするためのコマンドです。
単純なファイルコピーから、属性を保持したアーカイブコピー、ユーザー確認付きコピーまで多様なオプションが用意されています。

基本構文

cp [オプション] コピー元 コピー先

主なオプションと解説

  • -a: アーカイブモード(-dR –preserve=all 相当)
  • -f: コピー先ファイルを強制的に上書き
  • -i: 上書き前に確認(”overwrite ‘file’? ” など)
  • -l: ハードリンクを作成(コピーではない)
  • -L: シンボリックリンクのリンク先をコピー
  • -n: 既存ファイルを上書きしない
  • -p: 属性(所有者、権限、タイムスタンプ)を保持
  • -r / -R: ディレクトリを再帰的にコピー
  • -s: シンボリックリンクとしてコピー
  • -t DIR: コピー先ディレクトリを明示
  • -u: コピー元が新しい場合のみコピー
  • -v: コピー中のファイル名を表示

使用例と出力サンプル

ファイルをコピー

$ cp file1.txt file2.txt

ディレクトリを再帰的にコピー

$ cp -R dir1 dir2

上書き確認付きでコピー

$ cp -i file1.txt file2.txt
overwrite 'file2.txt'? y

属性を保持してコピー

$ cp -p file1.txt file2.txt

コピー中のファイル名を表示

$ cp -v file1.txt file2.txt
'file1.txt' -> 'file2.txt'

シンボリックリンクをそのままコピー(リンクとして)

$ cp -d symlink targetlink

よくあるエラーと対処

エラー例原因解決策
Permission denied書き込み権限がないsudo で実行 or chmod/chown
cannot overwrite directoryディレクトリに -r オプションがない-r 付きで実行
overwrite without prompt上書き確認なし-i を使用して確認付きに

まとめ

  • cp は強力かつ柔軟なコピーコマンド
  • 属性を保持したい場合は -a-p
  • ディレクトリやリンクの扱いには -r, -L, -d などを活用

参考リンク

  • https://man7.org/linux/man-pages/man1/cp.1.html
  • https://phoenixnap.com/kb/cp-command

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です