web-dev-qa-db-ja.com

ディレクトリ内のすべての.gzを抽出および削除する-Linux

ディレクトリがあります。約500Kの.gzファイルがあります。

そのディレクトリ内のすべての.gzを抽出し、.gzファイルを削除するにはどうすればよいですか?

77
user2247643

これはそれを行う必要があります:

gunzip *.gz
160
Adrian Dunn

@techedemicは正しいが、「。」が欠落している現在のディレクトリに言及し、このコマンドはすべてのサブディレクトリを調べます。

find . -name '*.gz' -exec gunzip '{}' \;
20
elhaj

これを明らかにする方法は複数あります。

    # 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を実行します

17
techedemic

現在のディレクトリとそのサブディレクトリにあるすべてのgzファイルを抽出します。

 find . -name "*.gz" | xargs gunzip 
3
Jokerius

単一のファイルを抽出したい場合:

gunzip file.gz

ファイルを抽出し、.gzファイルを削除します。

3
Neelam
for foo in *.gz
do
  tar xf "$foo"
  rm "$foo"
done
1
Steven Penny

試してください:

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ファイルが削除されます。説明が必要な場合は、「|」前のコマンドの標準出力を取得し、それをコマンドの標準入力として使用します。 "man command"を引用符なしで使用して、これらのコマンドと引数が何をするかを理解してください。または、オンラインで調査できます。

0
user2921779