GNU/Linux >> Belajar Linux >  >> Linux

Cara Menemukan Dan Menghapus File Duplikat Di Linux

Saya selalu mencadangkan file konfigurasi atau file lama ke suatu tempat di hard disk saya sebelum mengedit atau memodifikasinya, jadi saya dapat memulihkannya dari cadangan jika saya tidak sengaja melakukan kesalahan. Tapi masalahnya adalah saya lupa untuk membersihkan file-file itu dan hard disk saya dipenuhi dengan banyak file duplikat setelah jangka waktu tertentu. Saya merasa terlalu malas untuk membersihkan file lama atau takut saya akan menghapus file penting. Jika Anda seperti saya dan kewalahan dengan banyak salinan file yang sama di direktori cadangan yang berbeda, Anda dapat menemukan dan menghapus file duplikat menggunakan alat yang diberikan di bawah ini dalam sistem operasi mirip Unix.

Peringatan:

Harap berhati-hati saat menghapus file duplikat. Jika Anda tidak hati-hati, ini akan menyebabkan Anda kehilangan data secara tidak sengaja . Saya menyarankan Anda untuk memberikan perhatian ekstra saat menggunakan alat ini.

Menemukan Dan Menghapus File Duplikat Di Linux

Untuk tujuan panduan ini, saya akan membahas tentang tiga utilitas yaitu,

  1. Temukan,
  2. Fdupes,
  3. FSlint.

Ketiga utilitas ini gratis, open source, dan berfungsi di sebagian besar sistem operasi mirip Unix.

1. Temukan

Temukan , singkatan dari r berlebihan d ata temukan , adalah utilitas sumber terbuka dan gratis untuk menemukan file duplikat di dan/atau di dalam direktori dan sub-direktori. Ini membandingkan file berdasarkan kontennya, bukan nama filenya. Rdfind menggunakan peringkat algoritma untuk mengklasifikasikan file asli dan duplikat. Jika Anda memiliki dua atau lebih file yang sama, Rdfind cukup pintar untuk menemukan file mana yang asli, dan menganggap file lainnya sebagai duplikat. Setelah menemukan duplikat, itu akan melaporkannya kepada Anda. Anda dapat memutuskan untuk menghapusnya atau menggantinya dengan tautan keras atau tautan simbolis (lunak) .

Memasang Rdfind

Rdfind tersedia dalam AUR . Jadi, Anda dapat menginstalnya di sistem berbasis Arch menggunakan program pembantu AUR seperti Yay seperti yang ditunjukkan di bawah ini.

$ yay -S rdfind

Di Debian, Ubuntu, Linux Mint:

$ sudo apt-get install rdfind

Di Fedora:

$ sudo dnf install rdfind

Di RHEL, CentOS:

$ sudo yum install epel-release
$ sudo yum install rdfind

Penggunaan

Setelah terinstal, jalankan perintah Rdfind bersama dengan jalur direktori untuk memindai file duplikat.

$ rdfind ~/Downloads

Pindai direktori dengan Rdfind

Seperti yang Anda lihat pada tangkapan layar di atas, perintah Rdfind akan memindai direktori ~/Downloads dan menyimpan hasilnya dalam file bernama results.txt di direktori kerja saat ini. Anda dapat melihat nama file duplikat yang mungkin ada di file results.txt.

$ cat results.txt 
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1469 8 9 2050 15864884 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test5.regex
DUPTYPE_WITHIN_SAME_TREE -1469 8 9 2050 15864886 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test6.regex
[...]
DUPTYPE_FIRST_OCCURRENCE 13 0 403635 2050 15740257 1 /home/sk/Downloads/Hyperledger(1).pdf
DUPTYPE_WITHIN_SAME_TREE -13 0 403635 2050 15741071 1 /home/sk/Downloads/Hyperledger.pdf
# end of file

Dengan meninjau file results.txt, Anda dapat dengan mudah menemukan duplikatnya. Anda dapat menghapus duplikat secara manual jika Anda mau.

Anda juga dapat -dryrun opsi untuk menemukan semua duplikat di direktori tertentu tanpa mengubah apa pun dan menampilkan ringkasan di Terminal Anda:

$ rdfind -dryrun true ~/Downloads

Setelah Anda menemukan duplikatnya, Anda dapat menggantinya dengan hardlink atau symlink.

Untuk mengganti semua duplikat dengan hardlink, jalankan:

$ rdfind -makehardlinks true ~/Downloads

Untuk mengganti semua duplikat dengan symlink/tautan lunak, jalankan:

$ rdfind -makesymlinks true ~/Downloads

Anda mungkin memiliki beberapa file kosong di direktori dan ingin mengabaikannya. Jika demikian, gunakan -ignoreempty pilihan seperti di bawah ini.

$ rdfind -ignoreempty true ~/Downloads

Jika Anda tidak menginginkan file lama lagi, hapus saja file duplikat alih-alih menggantinya dengan tautan keras atau lunak.

Untuk menghapus semua duplikat, cukup jalankan:

$ rdfind -deleteduplicates true ~/Downloads

Jika Anda tidak ingin mengabaikan file kosong dan menghapusnya beserta semua duplikatnya, jalankan:

$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads

Untuk detail lebih lanjut, lihat bagian bantuan:

$ rdfind --help

Dan, halaman manual:

$ man rdfind

Bacaan yang disarankan:

  • Hapus File Duplikat Dari Android Anda Dengan Pemecah File Duplikat

2. Fdupes

Fdupes adalah utilitas baris perintah lain untuk mengidentifikasi dan menghapus file duplikat dalam direktori dan sub-direktori tertentu. Ini gratis, utilitas sumber terbuka yang ditulis dalam C bahasa pemrograman. Fdupes mengidentifikasi duplikat dengan membandingkan ukuran file, tanda tangan MD5 sebagian, tanda tangan MD5 penuh, dan akhirnya melakukan perbandingan byte demi byte untuk verifikasi.

Mirip dengan utilitas Rdfind, Fdupes hadir dengan beberapa opsi untuk melakukan operasi, seperti:

  • Mencari file duplikat secara rekursif di direktori dan sub-direktori
  • Kecualikan file kosong dan file tersembunyi dari pertimbangan
  • Tampilkan ukuran duplikat
  • Hapus duplikat segera saat ditemukan
  • Kecualikan file dengan pemilik/grup atau bit izin yang berbeda sebagai duplikat
  • Dan masih banyak lagi.

Menginstal Fdupes

Fdupes tersedia di repositori default sebagian besar distribusi Linux.

Pada Arch Linux dan variannya seperti Antergos, Manjaro Linux, instal menggunakan Pacman seperti di bawah ini.

$ sudo pacman -S fdupes

Di Debian, Ubuntu, Linux Mint:

$ sudo apt-get install fdupes

Di Fedora:

$ sudo dnf install fdupes

Di RHEL, CentOS:

$ sudo yum install epel-release
$ sudo yum install fdupes

Penggunaan

Penggunaan Fdupes cukup sederhana. Jalankan saja perintah berikut untuk mengetahui file duplikat dalam sebuah direktori, misalnya ~/Downloads .

$ fdupes ~/Downloads

Contoh keluaran dari sistem saya:

/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

Seperti yang Anda lihat, saya memiliki file duplikat di /home/sk/Downloads/ direktori. Ini menunjukkan duplikat dari direktori induk saja. Bagaimana cara melihat duplikat dari sub-direktori? Cukup gunakan -r pilihan seperti di bawah ini.

$ fdupes -r ~/Downloads

Sekarang Anda akan melihat duplikat dari /home/sk/Downloads/ direktori dan sub-direktorinya juga.

Fdupes juga dapat menemukan duplikat dari beberapa direktori sekaligus.

$ fdupes ~/Downloads ~/Documents/ostechnix

Anda bahkan dapat mencari beberapa direktori, satu secara rekursif seperti di bawah ini:

$ fdupes ~/Downloads -r ~/Documents/ostechnix

Perintah di atas mencari duplikat di direktori "~/Downloads" dan direktori "~/Documents/ostechnix" dan sub-direktorinya.

Terkadang, Anda mungkin ingin mengetahui ukuran duplikat dalam direktori. Jika demikian, gunakan -S pilihan seperti di bawah ini.

$ fdupes -S ~/Downloads
403635 bytes each: 
/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

Demikian pula, untuk melihat ukuran duplikat di direktori induk dan anak, gunakan -Sr pilihan.

Kami dapat mengecualikan file kosong dan tersembunyi dari pertimbangan menggunakan -n dan -A masing-masing.

$ fdupes -n ~/Downloads
$ fdupes -A ~/Downloads

Perintah pertama akan mengecualikan file dengan panjang nol dari pertimbangan dan yang terakhir akan mengecualikan file tersembunyi dari pertimbangan saat mencari duplikat di direktori yang ditentukan.

Untuk meringkas informasi file duplikat, gunakan -m pilihan.

$ fdupes -m ~/Downloads
1 duplicate files (in 1 sets), occupying 403.6 kilobytes

Untuk menghapus semua duplikat, gunakan -d pilihan.

$ fdupes -d ~/Downloads

Contoh keluaran:

[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf
[2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf

Set 1 of 1, preserve files [1 - 2, all]:

Perintah ini akan meminta Anda untuk menyimpan dan menghapus semua duplikat lainnya. Cukup masukkan nomor apa saja untuk menyimpan file yang sesuai dan menghapus file yang tersisa. Berikan lebih banyak perhatian saat menggunakan opsi ini. Anda dapat menghapus file asli jika tidak hati-hati.

Jika Anda ingin menyimpan file pertama di setiap kumpulan duplikat dan menghapus yang lain tanpa diminta setiap kali, gunakan -dN opsi (tidak disarankan).

$ fdupes -dN ~/Downloads

Untuk menghapus duplikat saat ditemukan, gunakan -I bendera.

$ fdupes -I ~/Downloads

Untuk detail selengkapnya tentang Fdupes, lihat bagian bantuan dan halaman manual.

$ fdupes --help
$ man fdupes

Baca juga:

  • Perbaiki Foto Duplikat:Atur Perpustakaan Foto Anda dengan Baik

3. FSlint

FSlint adalah utilitas pencari file duplikat lain yang saya gunakan dari waktu ke waktu untuk menyingkirkan file duplikat yang tidak perlu dan mengosongkan ruang disk di sistem Linux saya. Tidak seperti dua utilitas lainnya, FSlint memiliki mode GUI dan CLI. Jadi, ini adalah alat yang lebih ramah pengguna untuk pemula. FSlint tidak hanya menemukan duplikat, tetapi juga symlink yang buruk, nama yang buruk, file temp, IDS yang buruk, direktori kosong, dan binari yang tidak dilucuti, dll.

Memasang FSlint

FSlint tersedia dalam AUR , sehingga Anda dapat menginstalnya menggunakan pembantu AUR apa pun.

$ yay -S fslint

Di Debian, Ubuntu, Linux Mint:

$ sudo apt-get install fslint

Di Fedora:

$ sudo dnf install fslint

Di RHEL, CentOS:

$ sudo yum install epel-release
$ sudo yum install fslint

Setelah diinstal, luncurkan dari menu atau peluncur aplikasi.

Seperti inilah tampilan GUI FSlint.

Antarmuka FSlint

Seperti yang Anda lihat, antarmuka FSlint mudah digunakan dan cukup jelas. Di Jalur penelusuran tab, tambahkan jalur direktori yang ingin Anda pindai dan klik Temukan tombol di sudut kiri bawah untuk menemukan duplikat. Centang opsi rekursi untuk mencari duplikat di direktori dan sub-direktori secara rekursif. FSlint akan dengan cepat memindai direktori yang diberikan dan mencantumkannya.

GUI fslint

Dari daftar, pilih duplikat yang ingin Anda bersihkan dan pilih salah satu dari mereka yang diberi tindakan seperti Simpan, Hapus, Gabung, dan Tautan Simm.

Di Parameter penelusuran lanjutan tab, Anda dapat menentukan jalur yang akan dikecualikan saat mencari duplikat.

pencarian lanjutan fslint

Opsi baris perintah FSlint

FSlint menyediakan kumpulan utilitas CLI berikut untuk menemukan duplikat di sistem file Anda:

  • menemukan -- temukan file DUPlicate
  • temukan -- temukan Name Lint (masalah dengan nama file)
  • findu8 -- temukan nama file dengan penyandian utf8 yang tidak valid
  • temukan -- temukan Tautan Buruk (berbagai masalah dengan symlink)
  • menemukan -- temukan Nama yang Sama (masalah dengan nama yang bentrok)
  • ditemukan -- temukan Direktori Kosong
  • temukan -- temukan file dengan ID pengguna mati
  • menemukan -- temukan executable Non Stripped
  • menemukan -- temukan Redundant Whitespace dalam file
  • temukan -- temukan File Sementara
  • menemukan -- temukan kemungkinan Perpustakaan yang Tidak Digunakan
  • zipdir -- Dapatkan kembali ruang yang terbuang di entri direktori ext2

Semua utilitas ini tersedia di /usr/share/fslint/fslint/fslint lokasi.

Misalnya, untuk menemukan duplikat di direktori tertentu, lakukan:

$ /usr/share/fslint/fslint/findup ~/Downloads/

Demikian pula, untuk menemukan direktori kosong, perintahnya adalah:

$ /usr/share/fslint/fslint/finded ~/Downloads/

Untuk mendapatkan detail lebih lanjut tentang setiap utilitas, misalnya findup , jalankan:

$ /usr/share/fslint/fslint/findup --help

Untuk detail selengkapnya tentang FSlint, lihat bagian bantuan dan halaman manual.

$ /usr/share/fslint/fslint/fslint --help
$ man fslint

Kesimpulan

Anda sekarang tahu tentang tiga alat untuk menemukan dan menghapus file duplikat yang tidak diinginkan di Linux. Diantara ketiga tools tersebut, saya sering menggunakan Rdfind. Ini tidak berarti bahwa dua utilitas lainnya tidak efisien, tetapi saya senang dengan Rdfind sejauh ini. Nah, giliran Anda. Yang mana alat favorit Anda dan mengapa? Beri tahu kami di bagian komentar di bawah.


Linux
  1. Cara Menemukan File Dengan Izin SUID dan SGID di Linux

  2. Linux Hapus File dan Direktori

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Unix

  1. Cara Menemukan dan Menghapus Foto Duplikat di Linux

  2. Bagaimana menemukan file duplikat di Linux

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux

  1. Cara menemukan file di Linux

  2. Bagaimana cara chmod dan chown file tersembunyi di Linux?

  3. Bagaimana saya bisa secara rekursif menghapus semua file dan direktori kosong di Linux?