web-dev-qa-db-ja.com

コマンドラインはディレクトリ内のすべてをZipしますが、ルートとしてディレクトリを含めないでください

私の人生でこれに対する答えを見つけることができません。ビルドプロセスのために特定の方法でZipをパッケージ化しているため、ルートの結果のZipにフォルダーをまったく含めたくありません。たとえば、このファイルパスがある場合:

MyFolder/
    A.png
    B.txt
    C.mp3

そして、次のいずれかのコマンドを使用します。

Zip -r -X "MyFolder.Zip" MyFolder/*

または

cd MyFolder; Zip -r -X "../MyFolder.Zip" *

最終的に、MyFolderのルート要素を持つZipファイルになります。私が望むのは、次のように、すべてをディレクトリにダンプすることです。

A.png
B.txt
C.mp3

言い換えれば、MyFolderや他のフォルダーをルートにしたくないのです。私はマニュアル全体を読み、多数のオプションと多くのGoogle検索を試しましたが、Zipは本当にをルートにしたいようです。

ありがとう!

29
Eli

これは、アーカイブユーティリティの障害(Mac OS Xの解凍アプリ)でした。コマンドラインからunzipコマンドを使用したとき、それはうまく機能します。

cd MyFolder; Zip -r -X "../MyFolder.Zip" *
39
Eli

この答えに出くわしましたが、ディレクトリから変更する必要はありませんでした。 -jオプションは、すべてのファイルをZipのルートに追加するのに便利です。 すべてのファイルであるため、サブディレクトリ構造は保持されません。

したがって、このフォルダー構造では:

MyFolder
 - MyFile1
 - MySubFolder
   - MyFile2

そして、このコマンド:

Zip -rj MyFolder.Zip MyFolder

あなたはこれを得る:

MyFolder.Zip
 - MyFile1
 - MyFile2
8
Jonny