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