ファイルをコピーする
■-- 文法 --■
cp (オプション) 「コピー元ファイル名」 「コピー先ファイル名」
      例)
      cp▲ -p▲test.txt▲test_cp.txt
      「test.txt」ファイルの所有者、タイムスタンプ、アクセス権限などの
      情報もコピーする
       ※▲はスペースを表してます。
ファイルやディレクトリーをコピーする場合に使用します。
実行する際は、コピー元ファイル名とコピー先ファイル名を指定して
実行する必要があります。
■ オプション
-r ディレクトリごとコピーする
-f コピー先ファイルが既に存在する場合、強制的に上書きする
-i コピー先ファイルが既に存在する場合、上書きするか確認する
-p コピー元の所有者、タイムスタンプ、アクセス権などの情報を保持したままコピーする
 
■ 実行例
コマンド練習をする前にLinuxにログインして、
下記コマンドを実行して実習用ファイルを作成してください。
[pakira@Tiger ~]$ touch data.dat
[pakira@Tiger ~]$ touch out.txt
[pakira@Tiger ~]$ touch test.dat
[pakira@Tiger ~]$ touch tmp.dat
[pakira@Tiger ~]$ mkdir dir1
[pakira@Tiger ~]$ touch /tmp/cp_test.txt
※ファイルは存在しない場合作成してください。
※作成する場合はシステムに影響しないよう注意してください。
※今後はコマンドプロンプトの[pakira@Tiger ~]の箇所は省略します。
---------------------------------------
▼ファイルをコピーする
---------------------------------------
$ ls  ←ファイル一覧を表示
Desktop  data.dat  out.txt  test.dat  tmp.dat
$ cp data.dat data_new.dat ←「data.dat」を「data_new.dat」へコピーする
$ ls
Desktop  data.dat  data_new.dat  out.txt  test.dat  tmp.dat 
          ↑「data_new.dat」が新しくコピーされる
---------------------------------------
▼ディレクトリごとコピーする
---------------------------------------
$ ls -l
合計 8
drwxr-xr-x 2 pakira pakira 4096  1月 19 13:34 Desktop
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:48 data.dat
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:56 data_new.dat
drwxrwxr-x 2 pakira pakira 4096  1月 27 03:01 dir1
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:48 out.txt
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:48 test.dat
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:49 tmp.dat
$ cp -r dir1 dir2 ←「cp」コマンドにオプションで「-r」をつけて実行する
$ ls -l
合計 12
drwxr-xr-x 2 pakira pakira 4096  1月 19 13:34 Desktop
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:48 data.dat
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:56 data_new.dat
drwxrwxr-x 2 pakira pakira 4096  1月 27 03:01 dir1
drwxrwxr-x 2 pakira pakira 4096  1月 27 03:04 dir2
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:48 out.txt
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:48 test.dat
-rw-rw-r-- 1 pakira pakira    0  1月 27 02:49 tmp.dat
↑ディレクトリ「dir/」が「dir2/」へコピーされる
--------------------------------------------
▼コピー先に同じファイル名のファイルが既に存在する場合、上書きするか確認する
--------------------------------------------
今回コマンド実行したCentOS5.5環境の場合、コピー先に同じファイル名の
ファイルが存在しても初期設定(デフォルト)で強制上書きされるように
なっています。
$ ls
Desktop  data.dat  data_new.dat  dir1  dir2  out.txt  test.dat  tmp.dat
$ cp out.txt data_new.dat 
↑既に存在するファイルでも初期設定では上書きしてしまう
この場合、同じファイル名のファイルがあることに気づかず上書きコピー
してしまう事があります。それを防ぐためにオプション「-i」を使用します。
$ cp -i out.txt data_new.dat ←オプション「-i」を指定して上書き確認をする
cp: \`data_new.dat\' を上書きしてもよろしいですか(yes/no)? y
       ↑上書きするかの確認 (y=yes n=no)
なお、cpコマンドを実行することでファイルが上書きされないよう、
Linuxによってはデフォルトでcpコマンドを-iオプション付きで実行するように
設定されているものもあります。
---------------------------------------
▼ファイルを複数コピーする
---------------------------------------
$ cp data.dat test.dat dir1
 ↑コピー元ファイル名をスペースで複数指定してコピー先にはディレクトリを指定する
$ ls dir1 ←コピー先フォルダの中身を確認する
data.dat  test.dat
 ↑複数のファイルが指定したディレクトリへコピーされる
-----------------------------------------------
▼コピー先ファイル名に「.」を指定し、
 カレントディレクトリにファイルをコピーする
-----------------------------------------------
$ ls
Desktop  data.dat  data_new.dat  dir1  dir2  out.txt  test.dat  tmp.dat
$ cp /tmp/cp_test.txt .  ←コピー先に「.」を指定
$ ls
Desktop      data.dat      dir1  out.txt   tmp.dat
cp_test.txt  data_new.dat  dir2  test.dat
↑「/tmp」ディレクトリにある「cp_test.txt」ファイルがカレントディレクトリにコピーされる
P.S
cpをもっと理解したいなら、こちらがおすすめです。
👉いますぐ詳細を見る
P.P.S
「無料でLinuxサーバーが構築できます」0円で自由に使えるLinux環境を持ちませんか?
最新のAlmaLinux9で作る【Linuxサーバー構築入門マニュアル】を無料プレゼント中です。
👉ダウンロードはいますぐこちらをクリック
<<関連記事>>
・pstree
・chsh
・finger
・du
・uname
