多くのZipファイルa.Zip、b.Zip、c.Zip、...があり、それぞれを新しいフォルダーに抽出しますa、b、c、...、それぞれターミナル経由。
実際に、私は実際に多くのフォルダを持っているので、find
で後で使用できるソリューションです2014、2013、2012、...それぞれに多くのZipファイルが含まれていますa.Zip、b.Zip、など。find . -name "*.Zip" -exec {} unzip \;
を実行すると、すべてが解凍されます。ファイルをそれぞれの親フォルダーに配置します。
Unzipの-d
オプションを使用して、アーカイブコンテンツの代替ディレクトリを設定できる必要があります。
unzip -d a a.Zip
unzip -d b b.Zip
等々。 find
式内で、Shellパラメーター展開を使用して、zipファイルの名前からディレクトリの名前を導出できるはずです。
find -name '*.Zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
最初にecho
を追加してテストします。
find -name '*.Zip' -exec sh -c 'echo unzip -d "${1%.*}" "$1"' _ {} \;
またはのようなもの
while read -rd $'\0' f; do
unzip -d "${f%.*}" "$f"
done < <(find -name '*.Zip' -print0)
私はこれを自分で探しましたが、他のコマンドですでにそれを行っていて、それを他のほぼすべてのこと、すでにやっていた方法に適用できることに気付きました。
Findメソッドは、理由もなく複雑すぎてクレイジーです。
for i in *.Zip; do unzip "$i" -d "${i%%.Zip}"; done
単に使用する
unzip '*.Zip' -d /home/user/folder/
また、unrarを使用してこれを行う必要がありました。これは、kencinderのコードを少し変更することで実現できます。
for i in *.rar; do mkdir "${i%%.rar}"; unrar x -r "$i" "${i%%.rar}"; done
PS:これをコメントとして追加したかったのですが、評判ポイントが足りません!