cp ファイルやディレクトリをコピーする
cp [オプション] コピー元 コピー先試してみる
cp project/config.txt project/config.bakファイルを別の名前でコピーします。
mkdir backupコピー先のディレクトリを作ります。
cp project/config.txt backup/ディレクトリを指定すると、同じ名前でその中にコピーされます。
cp -r project backup/project2ディレクトリは -r を付けると、中身ごとコピーできます。
cp -i project/config.txt backup/config.txt < /dev/null-i を付けると上書きの前に確認されます。ここでは入力が空なので上書きされません。
ls -R backupコピーされた結果を確認します。
主なオプション
-r, -R | ディレクトリを中身ごと再帰的にコピーする |
|---|---|
-i | 上書きする前に確認する |
-p | 所有者、権限、更新日時をできるだけ保ってコピーする |
-a | 属性やリンクを保ちつつ再帰的にコピーする(アーカイブモード) |
-v | コピーしたファイルを表示する |
-u | コピー元が新しいとき、またはコピー先がないときだけコピーする |
解説
基本の形
cp コピー元 コピー先 が基本です。コピー先が存在するディレクトリなら、その中に同じ名前でコピーされます。存在しない名前や既存のファイル名なら、その名前のファイルになります。コピー元を複数並べるときは、最後の引数をディレクトリにします。
上書きに注意
コピー先に同名のファイルがあると、確認なしに上書きされます。うっかり上書きを防ぎたいときは -i を使います。
ディレクトリのコピー
ディレクトリを -r なしでコピーしようとすると、「-r not specified」というエラーになり、コピーされません。
属性を保つ
通常のコピーでは、コピーしたファイルの更新日時は現在の時刻になり、所有者もコピーした人になります。-p を付けると、所有者(root のみ)、権限、更新日時を保ちます。-a はこれに加えて、ディレクトリの再帰とシンボリックリンクをリンクのままコピーすることを含み、バックアップに向いています。