web-dev-qa-db-ja.com

LinuxでFAT形式のファイルを使用してZipファイルを作成する方法

Zipファイルを作成する必要があります(圧縮なし)。 Zip内のファイルをFAT形式にしたい。つまり、zipinfoコマンドを使用すると、次のようになります。

...
    -rw-a--     2.0 fat     3739 b- stor 25-Feb-11 16:46 part0/0072.png
    -rw-a--     2.0 fat     3703 b- stor 25-Feb-11 16:46 part0/0073.png
    -rw-a--     2.0 fat     3751 b- stor 25-Feb-11 16:46 part0/0074.png
    -rw-a--     2.0 fat     3688 b- stor 25-Feb-11 16:46 part0/0075.png
    -rw-a--     2.0 fat     3705 b- stor 25-Feb-11 16:46 part0/0076.png
...

これを行うには、 Zip コマンドを使用しています

Zip -0 -r <archive>.Zip <folder>

しかし、私は以下を取得しています(zipinfoで見ると)

...
    -rw-r--r--  3.0 unx   250847 bx stor  7-Apr-15 01:14 part0/00059.png
    -rw-r--r--  3.0 unx   216029 bx stor  7-Apr-15 01:14 part0/00060.png
    -rw-r--r--  3.0 unx   236572 bx stor  7-Apr-15 01:14 part0/00061.png
    -rw-r--r--  3.0 unx   247082 bx stor  7-Apr-15 01:14 part0/00062.png
    -rw-r--r--  3.0 unx   256374 bx stor  7-Apr-15 01:14 part0/00063.png
...

コマンドラインを使用してこれを行う方法はありますか?

1
2991ambusher

あなたは付け加えられます -kコマンドラインのオプション:

-k
-DOS-names

MSDOSに準拠するように名前とパスを変換し、MSDOS属性(Unixからのユーザー書き込み属性のみ)のみを保存し、MSDOSで作成されたものとしてエントリをマークします(そうではなかった場合でも)。 2つのドットを持つ名前などの特定の名前を処理できないMSDOSでのPKUNZIPとの互換性のため。

zipinfoコマンドはfatを表示し、unxは表示しません)。
オプション-ll-S

-ll
-from-crlf

MSDOSの行末CR LFをUnixLFに変換します。このオプションはバイナリファイルでは使用しないでください。このオプションは、Zipファイルが次の場合にMSDOSで使用できます。 Unixでの解凍を目的としています...
(すべて読む)

-S
-system-hidden

[MSDOS、OS/2、WIN32、ATARI]システムファイルと隠しファイルを含めます。

ノート:

  • Linuxで作成されたZipファイルはWindowsと互換性があるため、おそらくそれを行う必要はありません。
  • 短い名前のDOS形式では、同じ名前で複数のパス/ファイルを作成しようとすると、エラーが発生する可能性があります。

    Zipエラー:無効なコマンド引数(Zipファイルで名前を繰り返すことはできません)

1
Hastur

ZipファイルはWindowsと互換性がある必要があります。 Zipファイルは実際にはディスクフォーマットであるFATフォーマットではありませんが、Linuxにはウィンドウよりも多くのファイル属性があります。例えば。ウィンドウには実行可能ビットがありません。

多分あなたの問題は他のものです。チェック: http://usefulmix.com/creating-a-Zip-archive-under-linux-that-is-windows-compatible/

0
jcoppens