最上位ディレクトリをトリミングする方法を解凍します


13

zipアーカイブがあります。unzip -l myarchive.zipコマンドは、このリストを与えます:

top/subtop/files/1.txt
top/subtop/files2/2.txt
etc

ルートフォルダは、すべてのファイルのトップ/サブトップです。2つのトップ/サブトップフォルダーなしでこれらのファイルを抽出する方法は?

例えば私は、中/ホーム/ myuserの/ public_htmlディレクトリ午前、ときfiles/1.txtfiles2/2.txt、そのディレクトリに直接抽出することshoud。

試しましたunzip myarchive.zip top/subtop/*が、とにかくtop / subtopディレクトリを作成しました。

回答:


8

残念ながら、できません。あなたの唯一の本当の選択肢は、それらが抽出された後にそれらを移動することです。


うーん、知っておくといい。数日前、アーカイブを作成するときに、意図せずに上からいくつかのパスを追加していたため、これを尋ねました。そのため、追加のトップパスが原因で、それらの解凍に問題がありました。ただし、今日これを繰り返すことはできません。今日は正常に動作してます。つまり、top / subtopディレクトリでzip -r files.zip *を実行すると、ファイルパスのプレフィックスとしてtop / subtopパスが追加されませ。私はまったく同じコマンドを実行すると思いますが、奇妙なことに、結果が異なるため、解凍するときにトップディレクトリを削除する必要はありません。
camcam

すべてのディレクトリを無視することが可能であることに注意してください(単にすべてのファイルを隣り合わせに配置する)unzip -j
スカイラーイットナー

4

機能があり、zipファイルを操作できるtarコマンドを試してください--strip-components


2
:1.15.1タール(GNUのtar)では動作しませんtar: This does not look like a tar archive tar: Error exit delayed from previous errors
ケビン・パン粉

2
FreeBSDのtarはZIPアーカイブを処理できます。他のtar実装は、残念ながらフル機能ではありません。
ミハイルT.

1
Debianユーザーの場合、tarを使用してzipファイルを抽出する場合、FreeBSDのtarはbsdtar(apt-get install bsdtar)として利用できます。
ニクラスB

0

このコマンドを使用して、すべてのzipファイルを展開した後、すべてのファイルをルートファイルディレクトリにコピーしました。大幅な時間の節約:

for /r %f in (00P*) do @copy "%f" 

http://mlichtenberg.wordpress.com/2011/01/25/command-line-fun-how-to-flatten-a-folder-hierarchy/


5
これはDOSコマンドであり、Linuxコマンドラインとは何の関係もないことに気付いていますか?
メストレリオン

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