次のコマンドを使用して圧縮tarファイルを作成しました。
find /app/jboss -not -name "*.err" -not -name "*.log" | cpio -o | gzip >/app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
ここにzipファイルがあります。
[user1@myhost test]$ ls -ltr /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
-rwxrwxr-x 1 user1 mygrp 363997224 Aug 18 16:08 /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
/app/jboss
以下のディレクトリを/app/patchbkp/test
抽出して、/app/patchbkp/test/app/jboss/.......
次のコマンドを試してください。
cd /app/patchbkp/test/
zcat /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz | cpio -i
しかし、これはファイルを生成しません/app/patchbkp/test
試行すると、権限拒否エラーが発生します。gunzip /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
/app/jboss
ディレクトリからtarアーカイブを解凍する方法を教えてください。/app/patchbkp/test
答え1
最初のコマンドは、cpio
絶対ファイル名を使用して圧縮形式のアーカイブを作成します。つまり、ファイルを抽出すると、これらの絶対位置に配置されます。
-formatアーカイブは、-formatアーカイブではなく-formatアーカイブとしてcpio -o
作成されます。 -formatファイルを使用する必要があります。cpio
tar
cpio -o -H tar
tar
extract コマンドは機能しますが、ファイルシステムの絶対位置にのみファイルを書き込みます。-t
まず、フラグ付きのファイルを一覧表示すると、何が起こるかを確認できます。
zcat /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz | cpio -it
私はあなたの命令のこれらの変形をお勧めします
( cd / && find app/jboss -not -name "*.err" -not -name "*.log" | cpio -o -H tar ) | gzip >/app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz
または、GNUを直接使用することもできます(tar
利用可能な場合)。
tar -C / -f /app/patchbkp/test/REDHAT_jboss-eap-7.2_18-Aug-2020.tar.gz -cv --exclude '*.log' --exclude '*.err' app/jboss