ファイル操作
cp
ファイルやディレクトリをコピーする
SYNTAX
cp [options] source dest 主なオプション
| オプション | 説明 |
|---|---|
-r / -R | ディレクトリを再帰的にコピー(ディレクトリには必須) |
-p | タイムスタンプ・パーミッション・所有者を保持 |
-a | -rp に加えシンボリックリンクも保持(アーカイブモード) |
-i | 上書き前に確認を求める |
-n | 既存ファイルを上書きしない |
-v | コピーしたファイルを表示 |
-u | コピー元が新しい場合のみコピー |
使用例
# ファイルをコピー
cp file.txt backup.txt
# 別のディレクトリにコピー
cp file.txt /tmp/
# ディレクトリ全体をコピー(-r 必須)
cp -r ./src/ ./src_backup/
# タイムスタンプとパーミッションを保持してコピー
cp -p config.conf config.conf.bak
# 上書き前に確認(誤操作防止)
cp -i newfile.txt existing.txt
# 複数ファイルをディレクトリにまとめてコピー
cp file1.txt file2.txt file3.txt /backup/
# ワイルドカードで一括コピー
cp *.log /var/log/archive/
コピー先がディレクトリかファイルかで挙動が変わる
# dest がディレクトリのとき → ディレクトリ内に同名でコピー
cp file.txt /tmp/ # → /tmp/file.txt
# dest がファイル名のとき → そのパスにコピー(リネームコピー)
cp file.txt /tmp/new.txt # → /tmp/new.txt
注意点
-r なしでディレクトリをコピーしようとするとエラーになる。
大量ファイルの同期には rsync の方が差分転送できて効率的。