質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

2861閲覧

TarOutputStreamのlongFileModeの意味について

yuji38kwmt

総合スコア437

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2グッド

1クリップ

投稿2016/08/29 15:28

背景

org.apache.activemq.console.command.store.tar.TarOutputStreamクラスを使って、tar.gz化処理を実装しています。
長いパスを持つファイルをtar.gz化したとき、 "too long ( > 100 bytes)"というエラーメッセージが出ました。

下記サイトを参考にして、長いパスでもエラーがでないよう対応しました。
http://stackoverflow.com/questions/32528799/when-i-tar-a-file-its-throw-exception-as-is-too-long-100-bytes-tararchiveo

java

1setLongFileMode(TarOutputStream.LONGFILE_GNU);

質問1

TarOutputStream.LONGFILE_GNUの意味を教えてください。

公式サイトには、以下のように書かれています。

http://activemq.apache.org/maven/5.13.3/apidocs/org/apache/activemq/console/command/store/tar/TarOutputStream.html#setLongFileMode(int)

GNU tar extensions are used to store long file names in the archive.

tarの拡張子とGNUとどういった関係があるのでしょうか?

質問2

なぜデフォルト値がエラーを出すLONGFILE_ERRORなのでしょうか?
デフォルト値がLONGFILE_GNUの方が、エラーが出なくて使いやすいと思いました。

A-pZ, argius👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

昔の名残りというか、古いバージョンのGNUでは、98文字まででした。

https://www.gnu.org/software/tar/manual/html_section/tar_68.html

Archive format, compatible with the V7 implementation of tar. This format imposes a number of limitations. The most important of them are:

  1. The maximum length of a file name is limited to 99 characters.
  2. The maximum length of a symbolic link is limited to 99 characters.
  3. It is impossible to store special files (block and character devices, fifos etc.)
  4. Maximum value of user or group ID is limited to 2097151 (7777777 octal)
  5. V7 archives do not contain symbolic ownership information (user and group name of the file owner).

このページの冒頭部にもあるように

Due to historical reasons, there are several formats of tar archives.

歴史的な理由により、tar圧縮は複数のフォーマットを持っている、と。

なので、デフォルトはどんなバージョンでも問題ないであろう、100文字未満にしているのかと思います。

※なかなかするどい疑問だと思います。

投稿2016/08/29 16:04

編集2016/08/29 16:06
A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuji38kwmt

2016/08/31 15:48

なるほど歴史的経緯からですか~ ありがとうございます。
A-pZ

2016/08/31 15:58

いやこれ難しい話です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問