ファイルのコピー

cp コマンドには以下の3通りの書き方があります。

1. cp [-i] file1 file2
2. cp [-i] file... dir
3. cp -r dir1 dir2

-i オプションを与えると、コピーする際に同名のファイルが既に存在し、コピーすることによって上書きされて元の内容がなくなってしまうような場合に実行してよいかどうか問い合わせを行います。

これに y と答えると実行し、それ以外の入力であれば実行しません。

1. の書き方では、 file1 file2 に単にコピーされます。

2. の書き方では、(もし複数書けば複数の) file は、 dir のすぐ下に元のファイル名でコピーされます。

3. の書き方では、 dir1 以下のファイルを全て含めてディレクトリごと dir2 のすぐ下に元のファイル名、ディレクトリ名でコピーされます。

dir2 が存在しないとそれを作成して、 dir1 以下のファイルを全て dir2 のすぐ下に元のファイル名、ディレクトリ名でコピーされます。

例えば log ファイルを memo ディレクトリ以下に同じく log という名前でコピーする場合、以下のようなさまざまな表現ができます。

カレントディレクトリ 書き方 コマンド記述
yasuda 1. cp log memo/log
yasuda 2. cp log memo
memo 1. cp ../log log
memo 1. cp ../log ./log
memo 2. cp ../log .

例えば sample ファイルを Unix ディレクトリ以下に同じく sample という名前でコピーする場合、以下のようなさまざまな表現ができます。

カレントディレクトリ 書き方 コマンド記述
yasuda 1. cp memo/sample Unix/log
yasuda 2. cp memo/sample Unix
memo 1. cp sample ../Unix/sample
memo 2. cp sample ../Unix

例えば memo ディレクトリをツリーごと Unix ディレクトリ以下にコピーする場合、以下のようになります。
(今度は書き方は 3. しかありません。)

カレントディレクトリ コマンド記述
yasuda cp -r memo Unix
memo cp -r ../memo ../Unix
(どういうわけか cp -r . ../Unix は駄目なのです)
Unix cp -r ../memo .

この結果、ディレクトリ・ツリーは以下のようになります。

コピー後のディレクトリ・ツリー

コピー後のディレクトリ・ツリー


Yutaka Yasuda (yasuda@bakkers.gr.jp)