私はディレクトリを持っています。約500Kgの.gzファイルがあります。ディレクトリ内のすべての.gzを抽出して削除する - Linux
どのようにして.gzをそのディレクトリに展開し、.gzファイルを削除できますか?
私はディレクトリを持っています。約500Kgの.gzファイルがあります。ディレクトリ内のすべての.gzを抽出して削除する - Linux
どのようにして.gzをそのディレクトリに展開し、.gzファイルを削除できますか?
for foo in *.gz
do
tar xf "$foo"
rm "$foo"
done
明らかにこれを行う方法は複数あります。
# 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
を行う。これは、それを行う必要があり、それを削除するには:
gunzip *.gz
に属しているので、この質問を議論の対象外とすることに投票しています...それがあなたに「あまりにも大きい」エラーを与えない限り。この場合、 'find '$ dir" -maxdepth 1 -name' * .gz 'のようなものを使いたいでしょう。-print0 | xjobs -0 -l50 -v2 gunzip'を実行してインスタンスをそれぞれ50個の引数に制限します(並行して実行する)。 –
エキスを現在のディレクトリとそのサブディレクトリ内のすべてのGZファイル:
find . -name "*.gz" | xargs gunzip
@techedemicは正しいが、 '。'がありません。現在のディレクトリに言及すると、このコマンドはすべてのサブディレクトリを通過します。
find . -name '*.gz' -exec gunzip '{}' \;
試してみてください。
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz
が次に試してみてください。
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm
これは、現在のディレクトリ内のすべての.tar.gzファイルをuntarすると、すべての.tar.gzファイルを削除します。説明が必要な場合は、 "|"その前にコマンドの標準出力を取り、それをコマンドの標準入力として使用します。 "man コマンド"を使用して、これらのコマンドと引数が何をするかを把握してください。あるいは、オンラインで研究することができます。
あなたは、単一のファイルの使用を抽出したい場合は:それは、ファイルを抽出し、.gzのファイルを削除します
file.gz
gunzipを。
このスレッドからの重複の回答:https://stackoverflow.com/a/20103343/1847249 –
'.gz'ファイルは必ずしもアーカイブである必要はありません。その場合、 'gzip -d file.gz'を実行すると削除するものはありません。 – devnull
http://unix.stackexchange.com/ –