解決策 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