bashのzipアーカイブから大量のファイルを抽出するためのより良い方法


1

私は、bashを使ってそのアーカイブから抽出する必要がある、たくさんのファイルを含むzipアーカイブとファイルのリスト(〜10000アイテム)を持つ平文ファイルを持っています。

その操作を実行するための最良の方法は何ですか? 明らかな方法はファイルの各行に対してunzipを実行することですが、とても遅いように見えます。

bash  zip 

回答:


2

実行する代わりに unzip 各ファイルに対して、プレーンテキストファイルを入力として入力することで、ファイルのリスト全体を実行できます。

unzip -j MyZipFile.zip <<<textfile

macos '-j'は junk paths それはあなたのシステムでは同じではないですか?したがって、それは私にはうまくいきません。

テストしたマシンにアクセスする必要はありません:)私は今、仕事をしていますが、違うLinuxを使っています。 zip 味の間で。しかし、あなたはただ-jと無視することができます zip MyZipFile.zip <<<file うまくいくはずです。
P.P.

0

解凍では、どのファイルを抽出するかを指定することができます。

unzip archive.zip file1.txt file2.txt file3.txt ...

しかし、これは10000項目では機能しません。あなたはあなたのファイルのリストを100のかたまりに分割してそれらと一緒にunzipを実行することができます、これはそれ自身のために各ファイルを抽出するより速い実装になるでしょう。


0

あなたはxargsを使うことができます -a ファイルから引数を読み込むためのオプション。おそらく、そのような制限がある場合にシェルが処理するには多すぎることがないように、引数の量を適切な量に制限するためのフラグも使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.