GNU tarを使用して異なる--mode値を指定する

GNU tarを使用して異なる--mode値を指定する

私はGNUを使ってtarネットワークドライブに保存されているディレクトリからtarballを作成しようとしています。このネットワークドライブは、保存されているすべてのコンテンツに対してデフォルトモード0700()に設定されており、-rwx------tarballが作成されるまで変更できません。

次のコマンドを使用して、tarballに保存されているファイルの権限を変更しました。

tar -c --mode=0644 -f project.tar ./project/

問題は、タールボールのすべての権限が0644-rw-r--r--)に変更されることです。このディレクトリには実行可能ファイルがないため、./project/すべて0644文書それは問題ではありません。しかし目次結局0644私はそれを受け継いだ。他のシステムから抽出する場合は、実行ビットが追加されるまでディレクトリに入ることはできません。

tarGNUにすべてのモードを変更するように指示することは可能ですか?文書0644すべてのモードを変更してみてください目次到着する0755?コマンドのとほぼ同じです-type f-type dfind

オペレーティングシステムはDebian 11 Bullseyeバージョンで、GNUtarバージョンは1.34です。

ベストアンサー1

そして牛に似た一種の栄養tar、あなたはできます:

tar --mode a=r,u+w,a+X -cf file.tar directory

これにより、rwxr-xr-xディレクトリタイプファイルだけでなく、rw-r--r--他のすべての種類のファイル(シンボリックリンクとディレクトリを含む)も提供されます。これは次のように構成されます。

  • a=r:特権リセットr--r--r--
  • u+w:serwに追加されたのでurw-r--r--
  • a+X:llxに追加されますが、aディレクトリタイプファイルにのみ追加されるrwxr-xr-xため、ディレクトリとrw-r--r--他のすべての種類のファイルで機能します。

完全な柔軟性のために、以下を使用できます。star:

star cf file.tar -find directory \
     -type d -chmod 755 \
  -o -type l -chmod 777 \
  -o         -chmod 644

rwxr-xr-xディレクトリタイプファイルdrwxrwxrwxシンボルインクタイプファイルlrw-r--r--その他の種類のファイルはどこで入手できますか?

または、シンボル形式を使用します。

star cf file.tar -find directory \
     -type d -chmod a=rx,u+w \
  -o -type l -chmod a=rwx \
  -o         -chmod a=r,u+w

おすすめ記事