cp でディレクトリ構造を維持したままコピー

ディレクトリ構造を維持したままファイルをコピーしたい場合は cp の --parents オプションを使用するとよい。
例えば以下のようなディレクトリ構成だったとする。


.

-- dir1

`-- dir2
`-- dir3
`-- file

このとき、

$ cp dir2/dir3/file dir1
とすると、以下のようなディレクトリ構成になる。

.

-- dir1
`-- file

`-- dir2
`-- dir3
`-- file

一方、

$ cp --parents dir2/dir3/file dir1
のように --parents オプションをつけると

.

-- dir1
`-- dir2
`-- dir3
`-- file

`-- dir2
`-- dir3
`-- file

というようにコピー元のディレクトリ構造を維持したままコピーされる。