

CentOSの `cp -a` で指定ディレクトリ以下を全コピーしたら、パーミッションが一部変更されてしまいました。

具体的には、画像ディレクトリ内を再帰的に777していたのですが、一部が変更になったみたいでエラーが発生してしまったため、再度777へ変更し直しました。  
`cp -a` でコピーすると、元ディレクトリ内容と全く同じになると思っていたので、かなりびっくりしました。  
※色々作業していたので、もしかしたら何か勘違いしているかもしれません

**質問**  
・`cp -a` と `cp -p` の違いは？  
・`cp -a`のhelpを見たら、`--archive same as -dR --preserve=all` と書いていたので、`cp -p`
を全て兼ねるのでしょうか？  
・それとも `cp -ap` などと書くのでしょうか？

**最終的にやりたいこと**  
・元ディレクトリと全て同じ内容でコピーしたいです  
・構成も内容もパミッションもタイムスタンプも  
※何もない場所へコピーする前提。コピー内容は重複しない、もしあれば全上書き


CC BY-SA 4.0
2015-12-02T10:00:34.417
19554
2020-03-06T05:01:57.230
2020-03-05T06:47:15.040
3060
7886
question
linux unix
cpコマンドのaオプションとpオプションの違い


<http://linuxjm.osdn.jp/html/GNU_fileutils/man1/cp.1.html>  
によれば `-a` は `-dpR` と等価、とあります。

オイラは先輩にディレクトリ構造ごとコピーの際には `cp` を使うな、  
`tar` または `cpio` を使え、と教わりました。

`/home/alice/projects/zulu` 以下をまるごと `/home/bob/zulu` に複写するには  
(書き込み先に書き込み権限がある前提で)

[code]

    (cd /home/alice/projects && tar cf - zulu) | (cd /home/bob && tar xvf -)
    
[/code]

`cpio` の例は他の人にお任せで。  
今はもっといい方法があるんでしたっけ？


CC BY-SA 4.0
2015-12-02T10:15:45.627
19555
2020-03-06T05:01:57.230
2020-03-06T05:01:57.230
3061
8589
19554
answer