ファイル操作

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 の方が差分転送できて効率的。