GNU/Linux >> Linux の 問題 >  >> Linux

ディレクトリ内のすべてのファイルを独自の圧縮ファイルに圧縮する

解決策 1:

このシナリオでは、すべてのファイルを個別の tar ファイルに入れても意味がありません。 gzip を使用できます それらを直接圧縮するには:

gzip *

file1.out.gz になります 、 file2.out.gz など

tar を使用します 単一のファイルとして圧縮されたアーカイブが必要な場合のみ。

すべてのファイルに tar アーカイブが必要な場合は、次のように作成できます:

for i in *; do tar -czf $i.tar.gz $i; done

解決策 2:

@SvenWの回答(現在のディレクトリでのみ機能します)に基づいて構築するには、膨大な数のファイルがある場合、または再帰的なディレクトリ構造で実行したい場合も使用できます

find . -type f -exec gzip \{\} \;

出力を別のディレクトリに配置する必要がある場合 (この例では ../target ) で、オリジナルを削除したくない場合は、次のようにすることができます:

find . -type f -print | while read fname ; do
    mkdir -p "../target/`dirname \"$fname\"`"
    gzip -c "$fname" > "../target/$fname.gz"
done

Linux
  1. 特定のファイルまたはディレクトリを除いて、ファイルをtar(圧縮)する方法

  2. 現在のディレクトリと親ディレクトリを除くすべての隠しファイルをグロブする方法は?

  3. Bashに入力されたすべてのコマンドとすべてのファイル操作をログに記録する方法は?

  1. Tar:サブフォルダーを作成せずに単一のファイルをディレクトリに抽出しますか?

  2. 圧縮 tar 内の単一ファイルの更新

  3. .tar.gz ファイルの作成時にディレクトリを除外する

  1. Solaris レポートでファイルを untar する - tar:ディレクトリ チェックサム エラー

  2. すべてのサブディレクトリ内のすべてのファイルを bash の 1 つの圧縮ファイルに gzip する方法

  3. 複数のファイルを1つのgzファイルにgzipする方法は?