memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

ZIPファイルを展開したときに指定したディレクトリ名に変更したかった

ZIPファイルが手元にありまして、そのZIPファイルはRailsディレクトリをトップから圧縮した構造となっているはずなんですが。。。圧縮したときのトップディレクトリの名前ではなく、元々の圧縮ファイルの名前にしたかった。。。という状況です。

例えば。01.zipというファイルがあったとして、そのディレクトリをunzipするとAAA/...というディレクトリ構造になっていたとします。これを01/...というディレクトリに展開したいということです。わけがわからんでしょう。。。

ChatGPTに聞いたけどうまく行かず、とりあえず以下のシェルスクリプトで動作することを確認できました。

for f in *.zip;
  do unzip "$f" -d "${f%.zip}";
  mv "${f%.zip}"/*/* "${f%.zip}"/
done

ChatGPTの回答は惜しくて僕が付け加えたのはmvコマンドだけです。

とりあえずメモまで。

あ、ちなみにこれだと元々のディレクトリが空ディレクトリとして残ります。これを消さなくても僕の用途では問題がなかったのでそのままにしています。一応。