Article - Category

シェル芸

  • このエントリーをはてなブックマークに追加

    今日はコマンドラインのワンライナーのお話。
    とある 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 が実行されます。

  • 2018/06/19 23:45
  • シェル芸
  • シェル芸shellcommandコマンドワンライナーxargsfindunzipzip解凍
profile picture

自己紹介的な何か

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