以下の内容はhttps://iww.hateblo.jp/entry/20250612/cpより取得しました。


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

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




以上の内容はhttps://iww.hateblo.jp/entry/20250612/cpより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14