GNU Core Utilities/cp
表示
cp コマンドは、GNU coreutils に含まれるファイルやディレクトリをコピーするためのコマンドです。Unix 系 OS において標準的に使用され、FreeBSD などの BSD 系 OS でも cp コマンドは提供されていますが、GNU coreutils 版とはオプションの挙動が異なる場合があります。
基本的な使い方
[編集]cp [オプション] コピー元 コピー先
主なオプション
[編集]主なオプション オプション 説明 -r, --recursiveディレクトリを再帰的にコピー -i, --interactive上書き前に確認 -f, --force上書きを強制 -v, --verboseコピー中のファイル名を表示 -u, --update既存のファイルより新しい場合のみコピー -a, --archiveファイルの属性やシンボリックリンクを保持してコピー -p, --preserve所有者、パーミッション、タイムスタンプなどを保持 -L, --dereferenceシンボリックリンクを解決してコピー
例
[編集]- 単純なファイルコピー
cp file1.txt file2.txt
file1.txtをfile2.txtにコピー(file2.txtが存在する場合は上書き)。
- ディレクトリを再帰的にコピー
cp -r dir1 dir2
dir1内のすべてのファイルとサブディレクトリをdir2にコピー。
- 確認しながらコピー
cp -i file1.txt file2.txt
file2.txtが存在する場合、上書きするか確認される。
- 詳細な出力付きコピー
cp -v file1.txt file2.txt
- コピーの進行状況が表示される。
- アーカイブモードでコピー
cp -a dir1 dir2
- ディレクトリ
dir1をdir2にコピーし、ファイルの属性を保持。
FreeBSD との違い
[編集]FreeBSD でも cp コマンドは提供されていますが、GNU coreutils 版とはいくつかのオプションの違いがあります。特に --archive (-a) オプションは BSD cp にはなく、代わりに -p を使うことが推奨されます。
cp -Rp dir1 dir2 # FreeBSD でアーカイブ風のコピー
必要なら FreeBSD でも coreutils パッケージをインストールすれば GNU 版の cp (gcp) を使用できます。
pkg install coreutils gcp -a dir1 dir2
詳しい違いを確認するには、man cp でそれぞれのシステムのマニュアルを参照してください。