<p class="wp-block-paragraph">Pada artikel sebelumnya saya sudah membahas tentang <a href="https://www.tutorialpedia.net/cara-menemukan-file-dan-folder-besar-di-linux/">Cara Menemukan File dan Folder Besar di Linux</a>. Pada tutorial kali ini saya akan mencoba memberikan tutorial tentang menghapus file duplikat di linux. Kadang, ketika hardisk komputer/server kita sudah mulai penuh, ada waktunya kita untuk membersihkan atau menghapus file-file yang tidak penting baik di komputer ataupun server. Tak jarang, banyak sekali file-file duplikat yang banyak sehingga memakan ruang <a href="https://id.wikipedia.org/wiki/Cakram_keras#:~:text=Cakram%20keras%20atau%20piringan%20keras,sekunder%20dan%20berisi%20piringan%20magnetis.&;text=Kapasitas%20terbesar%20diska%20keras%20saat,ukuran%20standar%203%2C5%20inci.">hardisk komputer </a>ataupun server kita.</p> 
 
 
 
<p class="wp-block-paragraph">Kebiasaan mengunduh file dari internet, merupakan salah satu faktor hardisk komputer kita menjadi penuh.</p> 
 
 
 
<p class="wp-block-paragraph">Lalu, bagaimana cara menghapus file duplikat di linux?</p> 
 
 
 
<p class="wp-block-paragraph">Jadi, pada tutorial kali ini saya akan menggunakan sebuah file bash script, dimana script tersebut ketika dijalankan akan secara otomatis menghapus file yang sama secara singkat!</p> 
 
 
 
<p class="wp-block-paragraph">jadi, anda tidak perlu lagi membuka satu-persatu folder untuk menghapus file yang duplikat tersebut.</p> 
 
 
 
<h2 class="wp-block-heading"><strong>Menghapus File Duplikat di Linux</strong></h2> 
 
 
 
<p class="wp-block-paragraph">Menghapus file dengan bash script.</p> 
 
 
 
<p>Buat sebuah file dengan nama hapus-duplikat.sh</p> 
<pre><code>touch hapus-duplikat.sh</code></pre> 
<p>Buka file yang sudah terbuka tadi lalu masukkan kode dibawah ini.</p> 
<pre><code>#!/bin/bash 
declare -A arr 
shopt -s globstar 
 
for file in **; do 
 [[ -f "$file" ]] || continue 
 
 read cksm _ <; <;(md5sum "$file") 
 if ((arr[$cksm]++)); then 
 echo "rm $file" 
 fi 
done</code></pre> 
<p>Jangan lupa untuk simpan.</p> 
<pre><code>CTRL+X</code></pre> 
<p>lalu beri hak akses</p> 
<pre><code>chmod a+x hapus-duplikat.sh</code></pre> 
<p>Lalu jalankan</p> 
<pre><code>./hapus-duplikat.sh</code></pre> 
<p>Maka script tersebut akan mencari dan menghapus file yang duplikat didalam folder yang sama.</p> 
 
 
 
<p class="wp-block-paragraph">Jika cara tersebut cukup ribet, anda bisa menggunakan cara dibawah ini dengan <em>one line command</em>. artinya anda hanya perlu menjalankan perintah dibawah ini langsung diterminal.</p> 
 
 
 
<p><strong>Menemukan File Duplikat (berdasarkan ukuran terlebih dahulu, kemudian hash MD5)</strong></p> 
<pre><code>find -not -empty -type f -printf “%s\n” | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 –all-repeated=separate</code></pre> 
<p><strong>Hapus file duplikat yang ditemukan</strong></p> 
<pre><code>find -not -empty -type f -printf “%s\n” | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 –all-repeated=separate | cut -f3-100 -d ‘ ‘ | tr ‘\n.’ ‘\t.’ | sed ‘s/\t\t/\n/g’ | cut -f2-100 | tr ‘\t’ ‘\n’ | perl -i -pe ‘s/([ (){}-])/\\$1/g’ | perl -i -pe ‘s/’\”/\\’\”/g’ | xargs -pr rm -v</code></pre> 
 
 
 
<p><strong>Cara menguji file memiliki konten yang unik</strong></p> 
<pre><code>if diff "$file1" "$file2" >; /dev/null; then 
 ...</code></pre> 
<p><strong>Bagaimana cara mendapatkan daftar file dalam direktori?</strong></p> 
<pre><code>files="$( find ${files_dir} -type f )"</code></pre> 
<p><strong>Script</strong></p> 
<pre><code>#!/bin/bash 
# removeDuplicates.sh 
 
files_dir=$1 
if [[ -z "$files_dir" ]]; then 
 echo "Error: files dir is undefined" 
fi 
 
files="$( find ${files_dir} -type f )" 
for file1 in $files; do 
 for file2 in $files; do 
 # echo "checking $file1 and $file2" 
 if [[ "$file1" != "$file2" &;&; -e "$file1" &;&; -e "$file2" ]]; then 
 if diff "$file1" "$file2" >; /dev/null; then 
 echo "$file1 and $file2 are duplicates" 
 rm -v "$file2" 
 fi 
 fi 
 done 
done</code></pre> 
<p>Misalnya, kami memiliki beberapa direktori:</p> 
<pre><code>$>; ls .tmp -1 
all(2).txt 
all.txt 
file 
text 
text(2)</code></pre> 
<p>Jadi hanya ada 3 file unik. Mari kita jalankan skrip itu:</p> 
<pre><code>$>; ./removeDuplicates.sh .tmp/ 
.tmp/text(2) and .tmp/text are duplicates 
removed `.tmp/text' 
.tmp/all.txt and .tmp/all(2).txt are duplicates 
removed `.tmp/all(2).txt'</code></pre> 
<p>Lalu cek kembali, maka akan ada 3 file tersisa</p> 
<pre><code>$>; ls .tmp/ -1 
all.txt 
file 
text(2)</code></pre> 
 
 
 
<p class="wp-block-paragraph"> ;</p> 

Menghapus File Duplikat di Linux
Recent Articles
Kumpulan DNS Gratis Tercepat!
DNS merupakan sebuah sistem yang bertugas menyimpan semua informasi data domain dalam jaringan. Dengan adanya DNS, domain atau hostname yang ada akan ditranslate dan...
Apa itu DNS ? Dan Fungsinya
Apa itu DNS? - DNS (Domain Name System) adalah sebuah sistem yang bertugas menyimpan semua informasi data domain dalam jaringan. Dengan adanya DNS, domain...
Apa itu OLT ? Serta Fungsinya Dalam Jaringan
Apa itu olt ? OLT (Optical Line Termination) adalah perangkat keras yang berfungsi sebagai titik akhir (end-point) dari layanan jaringan optik pasif (Passive Optical...
Template Voucher Untuk Mixradius
Template Voucher Untuk Mixradius - Pasti kalian bosen kan dengan template voucher default mixradius? tenang. kali ini saya akan memberikan template untuk voucher mixradius kamu agar...
Daftar Port Game Online Mikrotik Terbaru
Daftar port game online dibawah ini bisa digunakan untuk membuat rule agar koneksi ke game online tersebut bisa lancar, bisa juga untuk memisahkan antara...