tarファイルの抽出中にエラーが発生しました。作成されたディレクトリは、777の代わりにchmod 666を使用して作成されました。したがって、そのフォルダ内では抽出されません。
これは私のコマンドです:
$umask 000 && tar -xvzf compress.tgz
tar: dist/assets: Cannot mkdir: Permission denied
tar: dist/assets/favicon.ico: Cannot open: Permission denied
$ls -ll
drw-rw-rw- 2 user grp 4096 Mar 14 16:43 assets
私はこのモジュールをローカルで使用してファイルを圧縮します。
https://www.npmjs.com/package/tar
mkdirを使用してディレクトリを作成すると、777モードが提供されます。何が欠けていますか?
要求通り:
-bash-4.2$ tar tzvf compress.tgz
drw-rw-rw- 0/0 0 2018-03-15 12:17 dist/
-rw-rw-rw- 0/0 13117 2018-03-15 12:17 dist/3rdpartylicenses.txt
drw-rw-rw- 0/0 0 2018-03-15 12:17 dist/assets/
抽出して使用しています--strip 1
。
ベストアンサー1
出力に見られるように、tar tv
アーカイブ自体に対する権限が破損しています。このアーカイブを生成したツールを制御できる場合は、それを修正するかバグを報告することをお勧めします。
破損したアーカイブからファイルを抽出する必要があるとします。この試み:
tar xzvf compress.tgz --delay-directory-restore
find dist -type d -exec chmod a+x {} \;
+
(この場合は末尾は使用できません。固定サブディレクトリにドロップダウンできるchmod
ように、一度に1つのディレクトリに適用find
する必要があるためです。) . 特殊文字ですが、代わりにfind... -exec
リテラルとして) に渡されます。