端末を使用して動的名前を持つ未知の数のパッケージを圧縮する

端末を使用して動的名前を持つ未知の数のパッケージを圧縮する

私は、UNIXベースのシステム(maxOS、Linux)で、ユーザーが他のサードパーティソフトウェアをインストールする必要なく、未知の数のパッケージを圧縮できるソリューションを見つけようとしています。

次のフォルダ構造があります。

MyProject
  /packages
    /custom-modules
      /Module1
        /ios
          /src
      /Module2
        /ios
          /src
      ...

カスタムモジュールの数と名前は異なる場合があります。これで、すべてのモジュールフォルダを圧縮してそれに応じて名前を付けることができるソリューションが必要ですsrc。つまり、最終出力は次のようになります。

MyProject
  /packages
    /custom-modules
      /Module1
        /ios
          /src
          /Module1.zip
      /Module2
        /ios
          /src
          /Module2.zip
      ...

理想的には、これらのコマンド/スクリプトを実行するたびに、既存の既存のzipファイルが削除され、新しいファイルが作成されます。

ベストアンサー1

MyProject/packages/custom-modulesディレクトリから始めて、次の行で作業を行います。

for module in * ; do cd "$module/ios/" && zip -qr "$module.zip" src/ && cd - &> /dev/null ; done

ここでのアイデアは、ワイルドカード/globを使用してすべてのモジュールディレクトリ名を取得することです。次に、各ディレクトリに対して「ios」サブディレクトリに変更し、zipコマンドを実行します。コマンドを直接実行することもできますが、これzipは望ましくないアーカイブの拡張パスを含みます。最後に、親ディレクトリに戻り、次の繰り返しを続行します。

これはデモです。元のディレクトリ構造は次のとおりです。

[haxiel@testvm1 custom-modules]$ tree
.
├── Module1
│   └── ios
│       └── src
│           ├── file1
│           └── file2
└── Module2
    └── ios
        └── src
            ├── file1
            └── file2

6 directories, 4 files

次に、次のコマンドを実行します。

[haxiel@testvm1 custom-modules]$ for module in * ; do cd "$module/ios/" && zip -qr "$module.zip" src/ && cd - &> /dev/null ; done

最終的なディレクトリ構造は次のとおりです。

[haxiel@testvm1 custom-modules]$ tree
.
├── Module1
│   └── ios
│       ├── Module1.zip
│       └── src
│           ├── file1
│           └── file2
└── Module2
    └── ios
        ├── Module2.zip
        └── src
            ├── file1
            └── file2

6 directories, 6 files

以下は、内容を示すサンプルZIPファイルです。

[haxiel@testvm1 custom-modules]$ unzip -l Module1/ios/Module1.zip
Archive:  Module1/ios/Module1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  03-16-2019 20:42   src/
        0  03-16-2019 20:42   src/file1
        0  03-16-2019 20:42   src/file2
---------                     -------
        0                     3 files

おすすめ記事