指令のcp


1.cpコマンドは、ファイルとディレクトリをコピーするために使用されます.コピーするファイルまたはディレクトリを2つ以上指定すると、最後の目的ディレクトリはすでに存在するディレクトリになります.
共通パラメータ:
-a:このパラメータの効果は-pdrに等しい
-b:削除、目的のファイルを上書きする前にバックアップし、バックアップファイルにバックアップ文字列を付ける
[root@zhu1 ~]# ll
  8
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
-rw-r--r-- 1 root root 20 08-31 12:11 txt2
[root@zhu1 ~]# cp -b txt1 txt2
[root@zhu1 ~]# ll
  12
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
-rw-r--r-- 1 root root 20 08-31 12:12 txt2
-rw-r--r-- 1 root root 20 08-31 12:11 txt2~

-d:コピーしたソースファイルがリンクファイルである場合、-dパラメータを付けずに、このリンクファイルが指す元のファイルまたはディレクトリをコピーします.-dパラメータを加えると、コピーしたのはこのリンクファイルで、ソフト接続を再確立することに相当します.
[root@zhu1 ~]# ll
  4
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
lrwxrwxrwx 1 root root  4 08-31 12:17 txt2 -> txt1
[root@zhu1 ~]# cp txt2 txt3
[root@zhu1 ~]# cp -d txt2 txt4
[root@zhu1 ~]# ll
  8
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
lrwxrwxrwx 1 root root  4 08-31 12:17 txt2 -> txt1
-rw-r--r-- 1 root root 20 08-31 12:19 txt3
lrwxrwxrwx 1 root root  4 08-31 12:19 txt4 -> txt1
[root@zhu1 ~]#

-f:ファイルまたはディレクトリが存在するかどうかにかかわらず、ファイルまたはディレクトリを強制的にコピーする
[root@zhu1 ~]# ll
  8
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
-rw-r--r-- 1 root root 20 08-31 12:19 txt3
[root@zhu1 ~]# cp -f txt1 txt3
[root@zhu1 ~]# ll
  8
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
-rw-r--r-- 1 root root 20 08-31 13:11 txt3

-i:ファイルを上書きする前に上書きするかどうかを尋ねる
[root@zhu1 ~]# ll
  8
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
-rw-r--r-- 1 root root 20 08-31 13:11 txt3
[root@zhu1 ~]# cp -i txt1 txt3
cp: “txt3”?

-l:ファイルをコピーするのではなく、ソースファイルにハードリンクを作成します.
[root@zhu1 ~]# ll
  4
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
[root@zhu1 ~]# cp -l txt1 txt2
[root@zhu1 ~]# ll
  8
-rw-r--r-- 2 root root 20 08-31 12:10 txt1
-rw-r--r-- 2 root root 20 08-31 12:10 txt2

-rまたは-R:両方とも機能的に同じで、再帰的にコピーし、指定したディレクトリの下のすべてのファイルとサブディレクトリを一括処理します.ターゲットディレクトリが存在するかどうかについて2つの状況に分けます.
cp -r zhu   jiang
ターゲットディレクトリjiangが存在しない場合、jiangディレクトリが確立され、zhuディレクトリ内のファイルとサブディレクトリがjiangディレクトリにコピーされます.
[root@zhu1 ~]# ll zhu/
  8
-rw-r--r-- 2 root root 20 08-31 12:10 txt1
-rw-r--r-- 2 root root 20 08-31 12:10 txt2
[root@zhu1 ~]# ll
  4
drwxr-xr-x 2 root root 4096 08-31 13:18 zhu
[root@zhu1 ~]# cp -r zhu/  jiang
[root@zhu1 ~]# ll
  8
drwxr-xr-x 2 root root 4096 08-31 13:18 jiang
drwxr-xr-x 2 root root 4096 08-31 13:18 zhu
[root@zhu1 ~]# ll jiang/
  8
-rw-r--r-- 1 root root 20 08-31 13:18 txt1
-rw-r--r-- 1 root root 20 08-31 13:18 txt2
[root@zhu1 ~]#

ターゲットディレクトリjiangがすでに存在する場合、zhuディレクトリは直接jiangディレクトリにコピーされ、jiang/zhuになります.
[root@zhu1 ~]# ll zhu/ jiang/
jiang/:
  0
zhu/:
  8
-rw-r--r-- 2 root root 20 08-31 12:10 txt1
-rw-r--r-- 2 root root 20 08-31 12:10 txt2
[root@zhu1 ~]# cp -r zhu/ jiang/
[root@zhu1 ~]# ll zhu/ jiang/
jiang/:
  4
drwxr-xr-x 2 root root 4096 08-31 13:19 zhu
zhu/:
  8
-rw-r--r-- 2 root root 20 08-31 12:10 txt1
-rw-r--r-- 2 root root 20 08-31 12:10 txt2

-s:ソースファイルへのソフト接続
[root@zhu1 ~]# ll
  4
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
[root@zhu1 ~]# cp -s txt1 txt2
[root@zhu1 ~]# ll
  4
-rw-r--r-- 1 root root 20 08-31 12:10 txt1
lrwxrwxrwx 1 root root  4 08-31 13:21 txt2 -> txt1

-p:(小文字)ソースファイルの権限、時間、所有者、グループなどの属性を保持します.
[root@zhu1 ~]# ll
  4
-rwxrw-rw- 1 mysql mysql 20 08-31 12:10 txt1
[root@zhu1 ~]# cp txt1 txt2
[root@zhu1 ~]# cp -p txt1 txt3
[root@zhu1 ~]# ll
  12
-rwxrw-rw- 1 mysql mysql 20 08-31 12:10 txt1
-rwxr--r-- 1 root  root  20 08-31 13:23 txt2
-rwxrw-rw- 1 mysql mysql 20 08-31 12:10 txt3

二:常用状況
ディレクトリを再帰的にコピーする場合.権限を保持する場合に使用
-rp
または
-a
システムのデフォルト別名:
[root@zhu2 ~]# alias | grep cp
alias cp='cp -i'

コピー時にオーバーライドを強制的に使用する方法:
 
[root@zhu2 ~]# cp txt1 txt2
cp: “txt2”?
[root@zhu2 ~]# \cp txt1 txt2
[root@zhu2 ~]#

:実行時に別名を使用しない