すべてを

▼開く

閉じる▲

ディレクトリをコピーする

○ディレクトリ「dir1」を「dir2」にコピーする

cpコマンドで-rオプション、コピー元ディレクトリとコピー先ディレクトリを指定する
$ cp -r dir1 dir2

○コピー先に指定したディレクトリが存在しない場合

lsコマンドでコピーするファイルとディレクトリを見る
$ ls -lR
.:
drwxrwxr-x    2 masa users        4096  6月  3 21:28 dir1

./dir1:
-rw-rw-r--    1 masa users         268  6月  3 21:28 file1

cpコマンドで-rオプション、コピー元ディレクトリとコピー先ディレクトリを指定する
$ cp -r dir1 dir2

コピー前には、dir1のみが存在し、dir1の下にfile1がある。このdir1をdir2にコピーする。すると、dir2の下にfile1がコピーされる。つまり、dir2が存在しない場合は、dir1がdir2と置き換えられた形(dir2/file1)になる。

lsコマンドでコマンド実行結果を確認する
$ ls -lR
.:
drwxrwxr-x    2 masa users        4096  6月  3 21:28 dir1
drwxrwxr-x    2 masa users        4096  6月  3 21:29 dir2

./dir1:
-rw-rw-r--    1 masa users         268  6月  3 21:28 file1

./dir2:
-rw-rw-r--    1 masa users         268  6月  3 21:29 file1

○コピー先に指定したディレクトリが既に存在する場合

lsコマンドでコピーするファイルとディレクトリを見る
$ ls -lR
.:
drwxr-xr-x    2 masa     users        4096  5月 22 21:54 dir1
drwxr-xr-x    3 masa     users        4096  5月 24 12:42 dir2
./dir1:
-rw-r--r--    1 masa     users         256  5月 23 21:51 file1

./dir2:
合計 0

cpコマンドで-rオプション、コピー元ディレクトリとコピー先ディレクトリを指定する
$ cp -r dir1 dir2

ディレクトリdir1/の下にあるすべてのファイルとディレクトリをdir2/にコピーする場合、dir2/がすでに存在する場合はdir1/以下のファイルとディレクトリがdir2/の下にコピーされる。つまり、dir2/dir1/fileという形になる。

lsコマンドでコマンド実行結果を確認する
$ ls -lR
.:
drwxr-xr-x    2 masa     users        4096  5月 22 21:54 dir1
drwxr-xr-x    3 masa     users        4096  5月 24 13:20 dir2

./dir1:
-rw-r--r--    1 masa     users         256  5月 23 21:51 file1

./dir2:
drwxr-xr-x    2 masa     users        4096  5月 24 13:20 dir1

./dir2/dir1:
-rw-r--r--    1 masa     users         256  5月 24 13:20 file1

コピー先のファイルの所有者、グループ、アクセス権、アクセス時刻は、コピー時のものに変更される。