フォルダー自体を含めずにフォルダーの内容を圧縮する


78

folder次のようなディレクトリがあります。

folder
      -> root_folder
                    -> some files

このディレクトリをに圧縮したいのですがzipped_dir、試しました:

zip -r zipped_dir.zip folder/*

ただし、これにより、次のようなZIPが生成されます。

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

言い換えれば、それは私が内容をzipしたいディレクトリを含んでいます。何も移動せずに、この親ディレクトリをZIPから除外するにはどうすればよいですか?

IEこの最終結果が欲しい:

zipped_dir
          -> root_folder
                        -> some files

回答:


75

このコマンドを使用してみてください(アイデアが得られます)

cd folder; zip -r ../zipped_dir.zip *

他の方法があるかもしれませんが、これは私にとって最も速くて簡単です:)


2
これはそのトリックを完璧に機能します。注:を行いますchroot
ロレトパリシ

同等:zip -r zipped_dir.zip folder/*
トビアスコルブ

5
@TobiasKolb、質問を読んでいないかもしれません。OPは、zipで保存されたパスにフォルダーを入れたくない。
ロミオNinov

2
行う唯一の方法のようです
ロバート

1
@PabloDiaz、私の例でcd -は、作業を行います(1つのコマンドのみ):)またはcd ..
ロミオニノフ

30

使用し-jます。例えば:zip -r -j zipped_dir.zip folder/*

「root_folder」は圧縮されません。


7
同じ名前の2つのファイルがある場合、これでエラーが発生します。
クリス

11
OPはおそらく、すべてを削除するのではなく、親ディレクトリのみを削除することを望んでいます。
トックランド

それでもディレクトリを作成しzip -r -j package.zip ./dist/static/*たアーカイブの構造を作るdist/static/myfiels
deathangel908

4
子ディレクトリファイルもフラット化します。
Sumit Ramteke

3
この-jオプションは、すべてのディレクトリ情報を削除し、ファイルのみを保存します。つまり、すべてのファイルを「フラットな」方法で1つのディレクトリに保存します。
ロバート


0

これは私のために働くものです:

7z a zipped.zip ./rootDir/*

ziproot:内のファイル/ディレクトリでアーカイブを作成しますrootDir

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