Solusi 1:
Menempatkan setiap file ke dalam file tar terpisah tidak masuk akal dalam skenario ini. Anda dapat menggunakan gzip
untuk mengompresnya secara langsung:
gzip *
akan menghasilkan file1.out.gz
, file2.out.gz
dll.
Anda akan menggunakan tar
hanya jika Anda membutuhkan arsip terkompresi sebagai satu file.
Jika Anda memerlukan arsip tar untuk setiap file, Anda dapat membuatnya seperti ini:
for i in *; do tar -czf $i.tar.gz $i; done
Solusi 2:
Untuk membangun jawaban @SvenW (yang hanya akan berfungsi pada direktori saat ini), jika Anda memiliki sejumlah besar file atau ingin melakukannya pada struktur direktori rekursif, Anda juga dapat menggunakan
find . -type f -exec gzip \{\} \;
dan jika Anda perlu memasukkan hasilnya ke direktori lain (dalam contoh ini, ../target
) dan tidak ingin menghapus yang asli, Anda dapat melakukan sesuatu seperti:
find . -type f -print | while read fname ; do
mkdir -p "../target/`dirname \"$fname\"`"
gzip -c "$fname" > "../target/$fname.gz"
done