
これはSOに非常に近い圧縮アーカイブから特定のフォルダーのみを指定されたディレクトリに抽出するにはどうすればよいですか? 近いものが必要なのですが、内容のみではなく、内容を含むフォルダーが常に取得されます。提案されたのは次のとおりです。
#note $2 is passed in and would be == "magefoler"
unzip /srv/file.zip "$2-master/*" -d /srv/www/mage/
この構造を持つzipを取得するには何をする必要がありますか
file.zip
|-magefoler-master/
|-magefoler-master/app/*tons of files
|-magefoler-master/skin/*tons of files
を別のフォルダに移動する必要がありますが、 を移動することはできません。とフォルダmagefoler
のみ移動したいのです。これは、常にこれら 2 つのフォルダであるという意味ではなく、 内の子コンテンツ、ファイル、またはフォルダを取得する必要があるというだけです。すべてをフォルダにエクスポートし、そこから移動するという操作は避けたいものです。app
skin
magefoler
私が求めている最終結果は、/mage
次のようなフォルダーに出力した zip ファイルから得られます。
/srv/www/mage/
|--/mage/app/*tons of files
|--/mage/skin/*tons of files
答え1
ここに解凍するだけではだめですか:
$ unzip /srv/file.zip "$2-master/*" -d /srv/www/
次に、フォルダmagefoler-master
を次の場所に移動/名前変更しますmage
:
$ mv /srv/www/magefoler-master /srv/www/mage
代替案は?
過去にこの問題を調査したとき、 を使用せずに同様のことを実行できる追加の方法は 2 つしか見つかりませんでしたmv
。
- ここで Gilles が提案しているように FUSE を使用します。解凍時に unzip / zip でサブディレクトリを作成しないようにするにはどうすればよいですか?
- ツールを使用して
zipnote
、ZIP アーカイブ内のファイルを抽出前に移動させます。