ディレクトリをコピーした後に権限を変更しますか? [閉鎖]

ディレクトリをコピーした後に権限を変更しますか? [閉鎖]

共通サブディレクトリとその間にファイルがある2つの異なるパスに2つのディレクトリがあります。最初のディレクトリの内容を2番目のディレクトリにコピーし、同時に同じ権限が必要ですが、ファイルをコピーします。これで権限が変更された後、私のファイルに対する権限は次のようになります。-rwxr-xr-xに変更する必要がありますlrwxrwxrwx

この形式の権限をどのように変更できますか?

答え1

rsyncコピー時にファイルのアクセス許可を保存するためによく使用されます。

rsync [OPTION...] SRC... [DEST]

この-pオプションを使用すると、権限が維持されます。

-p, --perms
     権限の保存

(アーカイブ)を使用すると、-aより多くのオプションが追加されます。

-a、--archive
     アーカイブモード、-rlptgoDと同じ(-H、-A、-Xなし)

バラよりman rsync使い方の詳細と追加オプションを学びます。

答え2

元のファイル権限がl開始されると、-ファイルではなく他のファイル/ディレクトリへのシンボリックリンクです。

コピーにどのコマンドを使用しても、シンボリックリンクではなく参照する物理ファイルがコピーされます。l権限表示の先頭にシンボリックリンクのみがあり、通常のファイルは-

シンボリックリンクをコピーしたいがシンボリックリンクが指すファイルをコピーしたくない場合は、ファイルをコピーするために使用するツールのマニュアルページ(cpおそらく指定しなかったのですか?)を読んで従わないオプションがあることを確認してください。シンボリックリンク。

また、ほとんどのコピーツール(cprsyncなど)には元の権限を保持するオプションがあるため、コピーされたファイルはumask

一般ユーザーは、他のユーザーまたは自分が属していないグループが所有するファイルを作成できないため、ルートのみがコピーされたファイルに対する所有権、グループ、およびすべての権限を完全に保持できます。

答え3

あなたの質問に/ cpタグ、私はあなたがcpを使用したと仮定します。 ~からcpのcoreutilsドキュメント:

シンボリックリンクからコピーするとき、cpは通常再帰的にコピーしないか、または--link(-l)が使用されている場合にのみリンクに従います。このデフォルトは、--archive(-a)、-d、--dereference(-L)、--no-dereference(-P)、および-Hオプションを使用して上書きできます。複数のオプションが指定されている場合、最後のオプションは自動的に他のオプションをオーバーライドします。

リンクされたファイルの代わりにシンボリックリンクをコピーするには、-d次のようにこのフラグを使用できますcp

cp -d SOURCE DEST

このフラグは、シンボリックリンクがシンボリックリンクにコピーされることを-d強制します。cp~からcoreutils ドキュメント:

シンボリックリンクを指すファイルの代わりにシンボリックリンクにコピーし、コピーのソースファイル間のハードリンクを保持します。 --no-dereference --preserve=links と同じです。

このコピー中に別のフラグを使用した場合は、単に-dフラグに追加できるはずです。〜しない限り他のフラグの1つは-l、、、-aまたは-Lです(複数のオプションの使用に関する上記の注意事項を参照)-P-Hこの場合、フラグの順序に注意するか、不要なフラグを削除する必要があります。

関連情報