Menghapus semua file .class dan .svn

Hari ini gw dapet kerjaan untuk menenhance aplikasi dari client. Source code yang diberikan sudah ada folder .svn dari vendor sebelumnya, kemudian di dalam folder source code ada file .class hasil kompilasi. Di NetBeans biasanya file .class tidak dicompile dan diletakkan dalam folder yang sama dengan source code (.java) tetapi diletakkan di folder build.

Capek juga kalau harus delete satu per satu file .class dan folder .svn, akhirnya gw buka-buka lagi buku python untuk mencoba bagaimana membuat script menghapus semua folder .svn dan file .class dari folder source code, and journey begin…..

heck, wait, tiba-tiba ada yang buzz di pidgin sambil bilang, “nih nu cuma satu baris”…..
find . -type f -name \*.class -print | xargs rm
woh, lebih singkat pake bash shel dibanding pake script python :D.

perintah find digunakan untuk mendapatkan semua file atau direktori dengan pola terntentu, argumenya :

  • . (titik) : direktori yang akan di-find, titik (.) menandakan direktori yang aktif sekarang
  • -type f : tipe yang dicari adalah file, kalau direktori gunakan nilai d
  • -name \*.class : pola nama yang akan ditemukan, dalam hal ini semua file yang berekstensi .class
  • -print : print hasil pencarianya
  • | : pipeline untuk meneruskan hasil perintah sebelumnya ke perintah berikutnya
  • xarg : perintah untuk mengeksekusi perintah tertentu dengan argumen hasil pipeline
  • rm : menghapus semua file yang ditemukan dengan perintah find

perintah diatas bisa dinarasikan sebagai berikut :

Temukan semua file di direktori yang sekarang aktif dengan tile File dan namanya diakhiri dengan .class print hasilnya, kemudian gunakan hasil pencarian sebagai nilai argumen perintah rm (remove)

berikutnya adalah menghapus semua folder .svn, perintah diatas sedikit dimodifikasi menjadi

find . -type d -name .svn -print | xargs rm -rf

tambahan argumen ada di -type d, sekarang perintah find hanya akan menemukan direktori saja. Perintah rm ditambah argumen -rf yang artinya rekursif and force (hapus semua direktori dan isinya, paksa untuk dihapus, tidak perlu memberikan peringatan)

Setelah dilihat-lihat ada satu kasus lagi yang mempergunakan script diatas, file jar yang ada di dalam folder build dipisah-pisahkan berdasarkan frameworknya, misalnya hibernate, spring, webwork dan lain lain. NetBeans agak rese, nggak bisa add jar yang ada di dalam folder sekaligus, harus satu-satu browse ke dalam folder dan add jarnya. Pekerjaan yang sebenernya nggak banyak sih, cuman gw sebel ajah :)), jadi semua jar yang ada dalam folder gw pindahin ke folder lib semua, jadi satu campur-campur deh jar-nya. Perintahnya :

find . -type f -name \*.jar -print | xargs mv -t .

perintah mv digunakan untuk memindakan file, argumen -t . menandakan bahwa semua file jar akan dipindahkan ke folder yang sekarang sedang aktif, yaitu folder lib.

Tags: , , ,

2 Responses to “Menghapus semua file .class dan .svn”

  1. avatar Says:

    mas, kalau searching hingga subfolder semuanya bagaimana?

  2. Deny Says:

    @Avatar
    Itu sudah sampe sub foler.

    Good tutorial mas. Aku baru pake soale baru install ubuntet nih

Leave a Reply