パスワード付きZIPファイルの解凍

パピーリナックスを初めて使う方

モデレータ: 暇人, YoN, nyu

swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

パスワード付きZIPファイルの解凍

投稿記事 by swifter »

先日はお世話になりました。
メールでパスワード付きZIPファイルを送ってもらったのですが開けません。puppyは571JPです。

具体的にはZIPファイルをクリックするとXArchive0.2.8-6が起動します。
目的のZIPファイルを選択して解凍ボタンを押します。
解凍先のディレクトリを選択してOKを押す。
unzipウィンドウが開いてpasswordを求められます。
ここで入力をして解凍されましたと出るのですが、指定ディレクトリにファイルが見当たりません。

1、unzipウィンドウでのPW入力では文字が打ち込めないのですがこれは仕様でしょうか。例えば****のような伏せ文字も出ないのですか?

2、解凍されましたと出るのですが見当たらないのは他どこを探せば良いのでしょうか?
一つ気になることと言えばファイル名が菱形の???(文字化け?)だったり属性が?----だったりしています。

以上よろしくお願いします。
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

swifter さんが書きました:
1、unzipウィンドウでのPW入力では文字が打ち込めないのですがこれは仕様でしょうか。例えば****のような伏せ文字も出ないのですか?
伏せ字はでないはずです。入力は受け付けてます。


手元に該当するようなzip がないので確認できませんが、私が以前やったのは
1)適当なディレクトリ作って
2)問題のzipをコピーし、
3)仮想端末を開いて
4)unzip -O char hogehoge.zip
charというのはzipが作られた環境でのキャラクタコードセットが入ります。例えば cp932 とか。
展開する前に unzip -O char -l hogehoge.zip で中身確認したほうが良いでしょう。


展開後のファイルは、名前が . で始まっていなければROXファイラで見えるはずです。(隠しファイルを見るにはctrl-H)

外れていたらすみません。
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

Re: パスワード付きZIPファイルの解凍

投稿記事 by swifter »

Endeavor_wakoさん ありがとうございます。
Endeavor_wako さんが書きました:3)仮想端末を開いて
4)unzip -O char hogehoge.zip
が分かりません。
ターミナルを開いて4)をやってみましたが。

unzip: cannot find or open 2015030306212064.zip, 2015030306212064.zip.zip or 2015030306212064.zip.ZIP.
#

と言われてしまいました。
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

swifter さんが書きました:unzip: cannot find or open 2015030306212064.zip, 2015030306212064.zip.zip or 2015030306212064.zip.ZIP.
#

と言われてしまいました。
unzip から目的のzipファイル 2015030306212064.zipが見えていないようです。カレントディレクトリに2015030306212064.zipが存在するか確かめてください。

ROXファイラから仮想端末を開くには、目的のディレクトリを開いた状態で ` (JP106ならshift + @)を打鍵するか、右クリックでメニューを辿ってください。
添付ファイルを見るにはパーミッションが必要です
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

Re: パスワード付きZIPファイルの解凍

投稿記事 by swifter »

Endeavor_wako さんが書きました:ROXファイラから仮想端末を開くには、目的のディレクトリを開いた状態で ` (JP106ならshift + @)を打鍵するか、右クリックでメニューを辿ってください。
「ここでXtermを起動」というやつですね。このXtermというのが仮想端末というものですね。
見た目普通の端末との違いが分かりません。

で、やってみたのですが

# unzip -O char 2015030306212064.zip
Archive: 2015030306212064.zip
[2015030306212064.zip] TP¡ï.pdf password:
error: cannot create TP¡ï.pdf
#

という結果になってしまいました。
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

キャラクタコードセットを指定してください。

オプションが違っている、との指摘もありました。私の記憶違いかも。

unzip -O cp932 2015030306212064.zip
あるいは
unzip -I cp932 2015030306212064.zip

で、試してみてください。

なお、キャラクタコードセットはcp932とは限りません。送信側に確認するのが確実でしょう。

原因が他にあるような気もしてきました。
念のためディスクの空き容量もチェックしてみてください。
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

Re: パスワード付きZIPファイルの解凍

投稿記事 by swifter »

Endeavor_wako さんが書きました:unzip -O cp932 2015030306212064.zip
あるいは
unzip -I cp932 2015030306212064.zip

で、試してみてください。
unzip -I cp932 2015030306212064.zip で出来ました。有難うございました!!

# unzip -I cp932 2015030306212064.zip
Archive: 2015030306212064.zip
[2015030306212064.zip] TP治具.pdf password:
inflating: TP治具.pdf
#

「TP¡ï.pdf」から「TP治具.pdf」にファイル名が変わっているみたいです。
一体どういうことなのか解説が分かると良いのですが。
やはりXArchiveでは同じ操作はできないということなのでしょうか。
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

当初お伝えした内容に間違いがありましたこと、大変申し訳ございませんでした。

さて、xarchive は自分自身で書庫ファイルを処理するのではなく下請けに出しています。それらは /usr/lib/xarchive/wrappers にあります。zip ファイルを扱うのは zip-wrap.sh です。
これを改変すれば良さそうですが、直接触ると間違えたとき大変なので まず、/root/.xarchive/wrappers へコピーします。

次にgeany でコピーしたファイル(/root/.xarchive/wrappers/zip-wrap.sh)を開き

1)40行付近の NLS_OPT の内容を変更。(やっぱり -O になっているなあ...)
2)85行付近の PASS_EXTRACT_OPTS を変更。この変数はパスワード入力で端末が開いた際に使われます。
3)保存して終了。

これでそれらしい挙動になるかと思います。但し充分なテストはしていません。日頃パスワード付ZIP(かつWindows製)を使っていませんので。

もし、不具合が生じた場合は、/root/.xarchive/wrappers/zip-wrap.sh を削除すれば元に戻るでしょう。

試される場合はどうか自己責任でお願いします。
添付ファイルを見るにはパーミッションが必要です
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

Re: パスワード付きZIPファイルの解凍

投稿記事 by swifter »

色々ありがとうございます。ちょっと自分でもやってみようと思いますが・・。もう少し教えて下さい。
Endeavor_wako さんが書きました:1)40行付近の NLS_OPT の内容を変更。(やっぱり -O になっているなあ...)
2)85行付近の PASS_EXTRACT_OPTS を変更。この変数はパスワード入力で端末が開いた際に使われます。
1)は「O」を「I]に変更でよいですか。
2)は何をどう変更すればよいですか。

あとすいません、Geanyでzip-wrap.shを開いてみたのですが添付して頂いた画像と若干内容が違いました。自分の画面をこのサイトにアップするやり方を教えて頂けないでしょうか・・。
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

swifter さんが書きました:1)は「O」を「I]に変更でよいですか。
2)は何をどう変更すればよいですか。
1)はその通りです。
2)ですが、2枚目の画像の矢印がついているところが元々の行です。その直下に改変した分を書いています。
行の先頭に#を書いてコメントにしています。
元:PASS_EXTRACT_OPTS="-n"
改変後:PASS_EXTRACT_OPTS="-n $NLS_OPT"

行番号が1、2行ずれている程度なら気にしないでいいです。

画像のアップ方法ですが、
571JPのメニュー -> グラフィック -> Screeny 画面コピー という項目があります。それを使って画面のコピーが撮れます。撮った画像のデフォルトの保存先は /root のはずです。
秒数を指定すると、その時間が経過した後に画面をコピーします。待っている間にドロップダウンメニュー等を表示させることが可能です。

このフォーラムへの投稿は、記事の書き込み欄の直下にオプションとファイル添付のノートタブがあるので、ファイル添付をクリックして画像ファイルを追加してください。
添付ファイルを見るにはパーミッションが必要です
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

Re: パスワード付きZIPファイルの解凍

投稿記事 by swifter »

Endeavor_wako さんが書きました:行の先頭に#を書いてコメントにしています。
元:PASS_EXTRACT_OPTS="-n"
改変後:PASS_EXTRACT_OPTS="-n $NLS_OPT"
改変前の行の先頭に#を入れて次の行に改変後のコードを挿入してもらっていたのでしたか。
それで私がGeanyでzip-wrap.shを開いて見た画面と違ってたのですね。謎が解けました。

結果はバッチリ解凍されました。有難うございました。
Endeavor_wako さんが書きました:1)40行付近の NLS_OPT の内容を変更。(やっぱり -O になっているなあ...)
2)85行付近の PASS_EXTRACT_OPTS を変更。この変数はパスワード入力で端末が開いた際に使われます。
この1)、2)の操作の意味を解説して頂けないでしょうか?あるいは解説webのURLを教えて頂くだけでも結構です。
添付ファイルを見るにはパーミッションが必要です
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

外国語に練熟した人は、その言語を読んだり聴いたりしている際はいちいち日本語に訳して考えないそうです。
電算機言語の世界も同様で、コードについて「何をやっているのか説明せよ」と問われると、うまく説明できないことが多いです。
「コメントに書かれてない?」「仕様書を見ろ」「読んで自分で考えたら」等と私もよく言われたもんです。

ということで、以下、うまい説明になっていないのを予めご承知置き願います。

1)についてですが、その前方30行前後から始まっていて、zipinfoが -O を扱えるかチェックした後、扱えるならばロケールをチェックして日本語(ja)を検出したなら -O cp932を用意します。(この度は結果的に-Iが有効だった訳ですが)

2)については、1)で用意したオプションをEXTRACT_OPTS, PASS_EXTRACT_OPTSに設定しています。
これらの出番は160行あたり以降 -e) から始まるところで、unzip を実行し、失敗した場合はパスワードがかかっているものとして、仮想端末を起動してパスワードの入力待ちになります。
swifter さんが書きました:あるいは解説webのURLを教えて頂くだけでも結構です。
web上の情報の所在については詳しくないです。ご要望にそえず申し訳ございません。
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
swifter
記事: 70
登録日時: 13/12/31(火) 18:10
お住まい: 関東地方

Re: パスワード付きZIPファイルの解凍

投稿記事 by swifter »

色々教えて頂き有難うございました。もっと具体的に質問できれば良いのですけど何せ頭がウニからシナプスに変わるのに時間が掛かるもので..。
プログラムの世界はまさに外国語の習得と同じですね。コードを日本語に訳さなくても直接理解できるなんて神の領域に感じます。私は足元にも及ばない初心者ですので教えて頂いた説明ですら日本語の理解に時間が掛かる程です。

さて、今回教えて頂いたことを元に整理してみました。間違えていたら指摘して下さい。

原因:圧縮前のファイル名に日本語が使われたこと。
対策:ZIPファイルのあるディレクトリーで端末を開きunzipにて
   「-I cp932」というオプションを付ける。
発展:同じ事をXArchiveで出来ないかとお伺いしたところ、
   1)NLS_OPTに「-I cp932」を設定する。
   2)パスワード入力で端末が開いた時に必要なPASS_EXTRACT_OPTSにも
     「-I cp932」を設定する。
     (この"2)"をやらないとパスワード入力の端末が開いたときに文字化けしました。)  
  以上を教えて頂き実現した。

ところで、-O なのか -I なのかという問題ですが、
問題のZIPファイルをzipinfoで見てみましたら

コード: 全て選択

# zipinfo -I cp932 2015030306212064.zip
Archive: 2015030306212064.zip 185773 bytes 1 file
?--------- 2.3 unx 275479 B- defN 3-Mar-15 16:24 TP治具.pdf
1 file, 275479 bytes uncompressed, 185643 bytes compressed: 32.6%
# 
となりました。
ZIPファイルが文字化けして開けないと言う問題は検索すると出てきまして、
調べたところ「unx」となっているのはUNIXで作られたZIPファイルというこです。
なのでオプションは -I となるのですね。

またここで疑問なのですがcp932と言うのはWindowsで使われるキャラクターセットと書いてありましたが、今回の様にUNIXで作られたのにcp932というのはどういうことなのでしょうか?
PC:FMV-BIBLO NB75J
CPU:Intel(R) Pentium(R) M processor 1.60GHz
RAM:1.5G
Precise-571JP frugalインストール
tomy
記事: 7
登録日時: 09/02/19(木) 14:25

Re: パスワード付きZIPファイルの解凍

投稿記事 by tomy »

https://wiki.ubuntulinux.jp/Develop/UnzipTestcase
の辺りに目を通しておくと良いかと思います。
Endeavor_wako
記事: 380
登録日時: 09/09/18(金) 01:54

Re: パスワード付きZIPファイルの解凍

投稿記事 by Endeavor_wako »

swifter さんが書きました: またここで疑問なのですがcp932と言うのはWindowsで使われるキャラクターセットと書いてありましたが、今回の様にUNIXで作られたのにcp932というのはどういうことなのでしょうか?
キャラクターセットというのはデータをどのように解釈するか、という決め事ですので解釈するプログラムさえ動けばどんなOSでも利用できます。Linuxがutf-8、MS-DOSがシフトJIS、Windowsがcp932(違うかもしれない、詳しくないので違ってたら訂正願います)というのは、それらのOSがデフォルトとして採用している、というだけに過ぎません。

cp932ということでWindows(というか、Linux以外)由来と決めてかかっていたのですが、違いました。-O が通じない時点で気づくべきでしたが、日頃使っていないとボケてきますな。

ということで、40行付近における、NLS_OPTの中身を "-I cp932" から "-O cp932 -I cp932" に変更してください。 こいつら排他オプションじゃなかったんだ... 知らなかった。

tomy さんの紹介先のページにある「解凍すると文字化けするかも.zip」も、とりあえずいけるかと思います。
Main:NEC VersaPro VB-B (Core i5, RAM4GB, SSD, LinuxMint (xfce4,amd64))
Sub:Fujitsu note pc (Celeron、RAM8GB, SSD, LinuxMint (xfce4, amd64))

Puppyを使わなくなって久しい今日この頃。Raspiや32ビットPCにdebian入れてヘッドレスで
遊んでます。
返信する