ディレクトリがあります。約500Kの.gzファイルがあります。
そのディレクトリ内のすべての.gzを抽出し、.gzファイルを削除するにはどうすればよいですか?
ディレクトリがあります。約500Kの.gzファイルがあります。
そのディレクトリ内のすべての.gzを抽出し、.gzファイルを削除するにはどうすればよいですか?
回答:
これはそれを行う必要があります:
gunzip *.gz
find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunzip
インスタンスをそれぞれ50個の引数に制限する(そしてそれらを並行して実行する)ようなものを使用する必要があります。
明らかにこれを行うには複数の方法があります。
# This will find files recursively (you can limit it by using some 'find' parameters.
# see the man pages
# Final backslash required for exec example to work
find . -name '*.gz' -exec gunzip '{}' \;
# This will do it only in the current directory
for a in *.gz; do gunzip $a; done
他の方法もあると思いますが、これがおそらく最も簡単です。
そしてそれを削除するにrm -rf *.gz
は、該当するディレクトリでを実行するだけです
試してみてください:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz
次に試してください:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm
これにより、現在のディレクトリ内のすべての.tar.gzファイルが解凍され、すべての.tar.gzファイルが削除されます。説明が必要な場合は、「|」その前のコマンドのstdoutを取得し、それをその後のコマンドのstdinとして使用します。引用符なしで「manコマンド」を使用して、これらのコマンドと引数が何をするかを理解します。または、オンラインで調査することもできます。
.gz
ファイルには、必ずしもアーカイブである必要はありません。その場合、を実行するときに削除するものは何もありませんgzip -d file.gz
。