Upload file besar bergiga-giga terkadang bikin pusing. Mulai dari ketersediaan kuota internet, kuota cloud storage, sampai dengan proses upload yang sangat lama dan rawan gagal.
Oleh karena itu dalam beberapa kondisi, kita butuh untuk membagi file-file besar menjadi bagian-bagian kecil yang memudahkan kita untuk mengupload-nya atau pun menggandakannya ke media penyimpanan yang lain.
Kita akan membahas bagaimana cara membagi atau pun memecah file besar menjadi kecil-kecil di Linux. Hal ini juga sering dinamakan splitting files.
NB: Tutorial ini bisa kita lakukan di berbagai distro linux seperti Ubuntu, Debian, Centos, dan sebagainya. Pada tutorial ini saya menggunakan Arch Linux.
Menggunakan Perintah split dan cat
Cara yang cukup simpel adalah menggunakan perintah split
dan cat
. Perintah split
untuk membagi atau memecah file, sedangkan perintah cat
untuk menggabungkan file pecahan tersebut seperti semula.
Memecah File dengan split
Contoh saya memiliki file iso
installer Windows 10 berukuran 5.4GB. Saya akan membaginya menjadi 500mb per-bagian. Berarti saya akan mendapatkan 11 file pecahan.
Perintah yang harus saya eksekusi adalah:
split [options] nama-file [prefix-nama-ouput]
- Untuk
options
saya isi dengan-d
. Hal ini agar postfix nama file yang dihasilkan menggunakan angka. - Options bisa lebih dari satu. Saya tambahkan
options
kedua yaitub
dengan nilai500MB
. - Nama
file
saya isi denganWin10_English_x64.iso
. - Sedangkan untuk
prefix
saya isi denganwindows_10.iso-part
.
Hasil akhir dari perintah yang saya eksekusi adalah sebagai berikut:
split -d -b 500MB Win10_English_x64.iso windows_10.iso-part
Menggabungkannya lagi dengan cat
Untuk menggabungkannya lagi, kita bisa menggunakan perintah cat
seperti berikut:
cat [nama-prefix]* > [nama-file-output]
Contoh:
- nama prefix saya sama seperti di atas:
windows_10.iso-part
- nama file baru saya
windows_10_setelah_digabung.iso
Maka perintah yang saya eksekusi adalah:
cat windows_10.iso-part* > windows_10_setelah_digabung.iso
split
dan cat
NB: tangkapan layar pada Gambar 1 di atas terdapat bug dari aplikasi nautilus, di mana ia mendeteksi file berekstensi part03
sebagai MP3 file. Saya sudah melaporkan bug ini di laman source code resmi GNOME nautilus dan langsung mendapat tanggapan.
UPDATE: ternyata itu bukan bug dari nautilus, silakan lihat issue 1355 untuk lebih detilnya.
Memecah File Zip Dengan Perintah zipsplit
Untuk memecah atau men-splitting file zip, sebenarnya sudah cukup dengan cara sebelumnya yaitu dengan perintah split
dan cat
. Akan tetapi jika anda ingin cara yang lain, anda bisa menggunakan aplikasi zipsplit
.
Perintah zipsplit
akan memecahkan file .zip
ke dalam bentuk file .zip
yang baru yang lebih kecil. Hal ini berbeda dengan perintah split
yang mana ia memotong-motong file ke dalam file baru yang tidak jelas formatnya apa dan esktensinya apa.
Dengan aplikasi zipsplit
, kita hanya bisa membagi file zip saja. Untuk file bertipe lain maka tidak bisa. Perintah zipsplit
ini anda dapatkan ketika anda telah menginstall aplikasi zip
di Linux yang anda gunakan, sehingga tidak perlu install apa-apa lagi.
Katakanlah kita memiliki file foto.zip
dengan ukuran sekitar 50MB. Dan anda ingin untuk memecahnya menjadi masing-masing kurang dari 1MB. Maka anda bisa melakukan perintah berikut:
zipsplit -n 1048576 foto.zip
Perintah di atas akan menginstruksi zipsplit
untuk membagi file foto.zip
ke dalam file yang tidak kurang dari 1.048.576
byte atau 1MB.
Zipsplit tidak recommended untuk digunakan
Zipsplit tidak direkomendasikan untuk kita gunakan, karena ia memiliki berbagai macam kelemahan seperti:
- Ia tidak support file yang ukurannya lebih dari 2GB
- Ia tidak bisa men-split arsip jika ada salah satu file di dalam arsip yang ukurannya terlalu besar
- Cara untuk menggabungkan kembali file yang telah dipecah-pecah oleh zipsplit terlalu rumit dan tidak sederhana. Itu dikarenakan kita masih perlu mengkoreksi dan melakukan re-index dari file zip yang telah kita gabungkan tersebut.
Menggunakan 7z
Cara lain yang bisa kita lakukan untuk memecah file besar di linux adalah: menggunakan aplikasi 7z
. Aplikasi 7z
cukup populer baik di kalangan pengguna windows mau pun pengguna linux.
Jika anda belum memasang 7z
, anda bisa memasangnya dengan perintah berikut:
Install 7z di Ubuntu
sudo add-apt-repository universe
sudo apt update
sudo apt install p7zip-full p7zip-rar
Install 7z di Arch Linux
sudo pacman -S p7zip
Melakukan Splitting files dengan 7z
Katakanlah kita memiliki file ISO installer windows 10 dengan nama Win10_English_x64.iso
. Kita bisa langsung mengkompres file tersebut sekaligus memecahnya menjadi beberapa file dalam waktu yang bersamaan.
Perintah yang kita lakukan adalah sebagai berikut:
7z a -v500m windows-10.7z Win10_English_x64.iso
- Parameter
-v500m
akan menginstruksi 7z untuk memecah file ke dalam ukuran 500MB - Parameter
windows-10.7z
di atas adalah nama yang akan menjadi output - Sedangkan parameter
Win10_English_x64.iso
adalah nama file asli kita sebelum diapa-apakan
Jika anda hanya ingin meng-splitting saja tanpa melakukan proses kompresi, anda bisa menambahkan flag -mx0
seperti di bawah:
7z a -v500m mx0 windows-10.7z Win10_English_x64.iso
7z
Menggabungkan kembali file yang telah di-split
Untuk menggabungkan kembali file yang telah di-split dengan 7z
. Kita bisa melakukannya dengan beberapa cara: bisa dengan cara CLI mau pun dengan cara GUI menggunakan nautilus
. Kedua cara tersebut adalah: kita cukup mengekstrak file pertamanya saja, lalu 7z
yang akan memeriksa dan mengekstrak semua bagian pecahan file yang lain yang berada dalam folder tersebut.
CLI
Untuk via CLI anda bisa eksekusi perintah berikut:
7z x windows-10.7z.001
GUI
Untuk cara GUI dengan Nautilus:
- Buka nautilus, lokasikan ke direktori file yang akan anda ekstrak
- Klik kanan file part 1 (Icon file part 1 berbeda dengan yang lainnya. Bisa dilihat pada Gambar 2 di atas)
- Pilih Extract
Kesimpulan, mana yang harus digunakan?
Dari ketiga cara di atas, anda bisa memilih yang paling sesuai dengan kebutuhan. Yang jelas, cara yang kedua (yaitu menggunakan zipsplit
) adalah cara yang paling tidak direkomendasikan. Lalu bagaimana dengan split
dan 7z
?
- Jika anda memaksudkan untuk bertukar file dengan sesama pengguna linux, maka menggunakan
split
dancat
lebih cocok. - Jika anda memaksudkan untuk bertukar file dengan pengguna windows, maka menggunakan aplikasi
7z
lebih sesuai.
Terima kasih, semoga bermanfaat!