[shell] フォルダ内にある大量の ZIP ファイルをまとめて解凍する
2018/06/19 23:45
  • 今日はコマンドラインのワンライナーのお話。
    とある ZIP を解凍すると中に大量の ZIP が居たときに幸せになれるコマンドを紹介します。

    find コマンドだけを使うパターン


    $ find . -name '*.zip' -exec unzip -d data {} \;
    

    *.zip を検索し、 unzip コマンドを実行しているだけです。{} の部分にヒットしたファイルが渡されます。
    -d で展開先を指定しています。上記の例では、解凍先を data ディレクトリに指定しています。また、ディレクトリが存在しなければ作成もしてくれます。

    find コマンドと xargs コマンドを使うパターン


    $ find . -name '*.zip' | xargs -n1 unzip -d data
    

    find コマンドでヒットしたファイル群を xargs コマンドに渡して unzip を実行しています。xargs-n1 を指定することで該当ファイルが見つかるたびに unzip が実行されます。

    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • <2018/06/19 23:45>
  • シェル芸
  • シェル芸shellcommandコマンドワンライナーxargsfindunzipzip解凍
  • 新しい記事へ
    WordPress に継続的に貢献する理由と得られるもの(プログラマ目線)

    古い記事へ
    [Django]サイト内検索を実装した話

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。