GNU/Linux >> Linux の 問題 >  >> Linux

Linux / OS X tar の非互換性 – OS X で作成された tarball を Linux で untar するとエラーが発生する

エラーメッセージをグーグルで検索したところ、BSD tar 対 GNU tar のようです 問題。

GNU tar をインストール Mac OS で可能であれば、それを使用して tar を作成します .


Mavericks 以降を使用している場合、gnutar はデフォルトで含まれなくなりました。

自作を使用する場合の回避策は、次を実行することです:

brew install gnu-tar

その後、コマンド gtar を使用できます Linux との互換性のため。

tar を置き換えたい場合 gtar で 、単にシンボリックリンクを置き換えます

tar --version
ll `which tar`
sudo unlink `which tar`
sudo ln -s `which gtar` /usr/bin/tar
tar --version

Mac Os X で提供される元の tar を復元するには、上記のコマンドを実行しますが、which gtar を置き換えます which bsdtar

ソース:
https://github.com/jordansissel/fpm/issues/576


GNU tar は、デフォルトの OSX BSD tar に含まれるオプション情報の一部を好みません。

GNU tar では、次のオプションを使用してこれらの警告を抑制できます:

--warning=no-unknown-keyword

参照:https://www.gnu.org/software/tar/manual/html_section/tar_27.html

BSD tar はそのフラグをサポートしていないので、すべてのプラットフォームで同じ解凍コードを実行する必要がある場合は、次のようなものを使用できます:

isGnuTar=$(tar --version | grep -q 'gnu')
if [ $? -eq 0 ]
then
    echo "Detected GNU tar"
    tar --warning=no-unknown-keyword -zxf my.tar.gz
else
    tar -zxf my.tar.gz
fi

Linux
  1. Linux上のAPTパッケージマネージャーの説明

  2. Linux – -9プロセスを強制終了すべきではないのはいつですか?

  3. ハードディスク全体のLinuxをバックアップしますか?

  1. Linuxでディレクトリをgzipで圧縮する方法

  2. Linuxtarコマンド

  3. Linux での tar コマンドの例

  1. Linux 稼働時間の履歴

  2. Linux - redis-cli のみをインストール

  3. プロセスとスレッドの数を制限すると、GNU/Linux はプロセスとスレッドを一緒にカウントしますか?