揮発性のメモ2

最近知った知識を さも昔から知ってた風にメモ書きしていく

cpコマンドでファイルをコピーする

cpコマンドでファイルをコピーするとき、ファイルを最初に生成するときは パーミッションもコピーされることを今日初めて知った。
ずぅっと大昔から、パーミッションはコピーされないと勘違いしていた。


実際はオプションを何も指定しなくてもファイルのパーミッションもコピーされる。
ただし、そのときにumaskの影響を受けて パーミッションが適当にマスクされる。
-pとか-aとかつけたときはumaskの影響を受けずそのままコピーされる。

$ cp A.txt A2.txt
$ cp -a A.txt A3.txt
$ ls -l A*
total 0
-rwxrwxrwx. 1 hoge hoge 0 Jun 11 14:03 A.txt
-rwxr-xr-x. 1 hoge hoge 0 Jun 11 14:04 A2.txt
-rwxrwxrwx. 1 hoge hoge 0 Jun 11 14:03 A3.txt

パーミッションがデフォルトの 0022 でマスクされて削れてる

$ cp B.txt B2.txt
$ ls -l B*
-r--------. 1 hoge hoge 0 Jun 11 14:03 B.txt
-r--------. 1 hoge hoge 0 Jun 11 14:04 B2.txt

マスクがかからないパーミッションのときはそのまま

$ chmod 777 B2.txt
$ cp B.txt B2.txt
$ ls -l B*
-r--------. 1 hoge hoge 0 Jun 11 14:03 B.txt
-rwxrwxrwx. 1 hoge hoge 0 Jun 11 14:05 B2.txt

上書きのときはパーミッションはコピー先が採用される。タイムスタンプは更新される