cpコマンド
基本
$ cp [オプション] コピーしたいファイル コピー先
コピー先に同名ファイルがある場合、上書きされる。
コピー先にディレクトリを指定した場合、ディレクトリ下にコピーされる。コピー先ディレクトリが存在しない場合、作成される。
ディレクトリ内のファイル全部コピー
$ cp -a dir1/. dir2
rオプションとaオプションの違い
rは再帰的にコピーを行う。タイムスタンプや所有者が変わる。
aはディレクトリや属性などを保持してコピーする。タイムスタンプや所有者は変わらないし、再帰的にコピーもされる。
補足
$ cp *.html dir1
htmlファイルをdir1にコピーする。cp file1 file2 file3 dir1
でfile1,2,3をまとめてコピーする(コピーしたいファイルを複数指定できる)。
$ cp -a dir1 dir2
ディレクトリごと中身のファイルをコピーできるが、dir2が存在した場合、dir2/dir1という構造になってしまう
$ cp -a dir1/. dir2
dir1/.でカレントディレクトリであることを示せば、dir2が存在しようとしまいとdir2のすぐ下にdir1のファイルがコピーされる
$ cp -a dir1/* dir2
$ cp -av dir1/* dir2 'dir1/dirA/' -> 'dir2' 'dir1/dirA/file' -> 'dir2/file'
サブディレクトリがあるとき構造が崩れるので辞めた方が良さげ