約320116個の.pdb.gzファイルを含むフォルダがあります。みんな解凍したいです。 gunzip *.gzを使用すると、パラメータリストが長すぎるというエラーが発生します。フォルダサイズは約2GBです。適切な提案をしてください。
答え1
find . -name '*.pdb.gz' -exec gunzip {} +
-exec gunzip {} +
gunzip
コマンドラインに多くのファイル名を指定しますが、あまり多くはありません。これは、-exec gunzip {} \;
各ファイルに対して新しいプロセスを開始するよりも効率的です。gunzip
答え2
「引数リストが長すぎます」エラーが発生するたびに、使用したい引数のサブセットを使用して、必要なコマンドを複数回呼び出すことで問題を解決できます。xargs
これを自動的に実行するのに役立つツールです。
find . -type f -a -name \*.pdb.gz -print0 | xargs -0 gunzip
答え3
私はこれがうまくいくと思います。処理のために、各ファイルのパス/名前を個別にgunzipに渡します。
find /my/dir -name "*.pdb.gz" -execdir gunzip "{}" \;
答え4
マルチコアコンピュータがある場合、それを使用してもgunzip
コンピュータの機能が最大化されないことがわかります。これを行うには、複数を並列に実行する必要がありますgunzip
。どの端末で何が行われるかを手動で追跡するのは面倒ですが、GNUパラレルを使用すると簡単に追跡できます。
find . -name "*.gz" | parallel -X gunzip {}