Tuesday, March 31, 2009

Bagaimana mengekstrak banyak file zip sekaligus

Untuk mengekstrak 1 sampai 5 buah bukanlah sebuah pekerjaan yang susah, kita cukup memilih file tersebut kemudian klik kanan di file tersebut lalu pilih extract.

Bagaimana kalau kita diperhadapkan oleh banyak file zip sekaligus misalnya, 100 buah file zip, inilah yang pernah saya hadapi, dan saya juga sempat berlelah-lelah mengekstrak satu-persatu file tersebut (beberapa kali saya mencoba mengekstrak banyak file sekaligus dengan memilih semua file lalu mengekstraknya, selalu saja gagal dilakukan), dan bayangkan jika kita harus mengekstrak 1000 buah file satu-persatu......!~#@!&%^%(, entah kapan akan selesai pekerjaan tersebut.

Untuk itu saya menemukan solusi untuk mengekstrak banyak file dengan menggunakan bash shell script (cara ini saya temukan setelah membaca buku Mastering Unix shell Scripting oleh Randal K. Michael yang diterbitkan oleh Wiley). Untuk mempersingkat waktu pembacaan anda :), saya sertakan source code file scriptnya dengan komentarnya, saya harap anda mengerti apa itu shell script (he he he....):





#!/bin/sh
# extract.sh, created at 15 February 2009
# (c) Juan Rio Sipayung aka Joielechong, GPL
# This Script will extracting all file in this script current directory to '/destination', you
# can change '/destination' to whatever destination folder you want e.g '/home/user' or '/tmp', of course
# you must have the write permission.

# This variable use to store the numbers of zip file being extracted
count=0

# Do extracting each zip file until no more
for file in *.zip
do
# unzipping file, -d option allows extraction in an arbitrary directory
# here we extracting to '/destination' as example, change '/destination' to your destination folder
unzip $file -d /destination
# Count each zip file being extracted
count=$(($count+1))
done

# This part telling user that no zip file in the current directory
# Still not working i don't know why, if you know tell me :).......
#if [ "$count" = 0 ]; then
# echo "No zip file is extracted"
#fi

# show how many the zip file being extracted
if [ "$count" != 0 ]; then
echo "$count zip file extracted"
echo "Extracting complete"
fi

exit 0
# End Of File




Simpan source code ini ke file dengan nama extract.sh dan letakkan kedalam folder dimana file zip anda terletak,
setelah itu jalankan melalui terminal dan tunggu hasilnya :).


catatan:
1. Setiap langkahnya dilakukan di atas sistem Linux Slackware 12.2 dengan menggunakan desktop manager KDE.
2. Script ini juga dapat digunakan untuk mengekstrak file rar, tar.gz atau jenis kompresi lainnya, tentunya
dengan melakukan beberapa perubahan.


Happy Hacking


Juan Rio Sipayung