Ronny Haryanto wrote:
> On Tue, Jan 02, 2007 at 02:59:46PM +0700, Coba wrote:
>   
>> Selamat siang linuxers,
>> Saya ingin tanya, bagaimana cara membuat command di prompt yang ingin
>> melakukan secara sekaligus
>> perintah seperti ini :
>> # find / -name *.dat
>>  akan muncul semua file extensi *.dat dari semua folder dan sub folder.
>> Setelah itu saya lanjutkan dengan:
>> # rm -rf *.dat dari semua folder dan sub folder tsb yg merupakan hasil dari
>> pencarian find...
>>     
>
> Ini sebetulnya kunci dari konsepnya adalah pengertian bahwa hasil
> menjalankan suatu perintah itu hanya akan muncul (ke standard output)
> by default kalo kita tidak menyuruh untuk dikemana2in. Umumnya shell
> memberi kita fasilitas untuk menyambung2kan beberapa perintah lewat
> piping antara standard output dan standard input. Contohnya:
>
>     ls -al | less
>
> Itu tanda vertical bar (|) kadang disebut juga pipe, jadi outputnya ls
> -al yg biasanya diterusin ke standard output by default akan
> disambungkan menjadi input untuk perintah less lewat standard input.
>
> Di sini lah sebetulnya bentuk kekuatan perintah2 di Unix systems.
> Kecil2 tapi cabe rawit. Perintah2nya biasanya cuma do one thing, but
> they do it well. Trus biasanya bisa digabung2kan, jadi flexible
> banget. Gak jarang kombinasi yg sampe 3 atau 4 kali piping dalam satu
> baris.
>
> Menjawab pertanyaan anda (secara tidak langsung), sebetulnya outputnya
> find pun bisa dipipe ke rm, tapi tidak secara langsung, karena rm
> tidak mengambil input nama2 file yg mau dihapus lewat standard input,
> melainkan lewat command line arguments. Jadi kalo mau pake cara itu
> butuh bantuan perintah xargs. Polanya umumnya begini:
>
>     find ..... -print0 | xargs -0 perintah
>
> Di mana 'perintah' itu menerima lebih dari satu input lewat command
> line argumentsnya, contohnya rm.
>
> Tapi find juga punya opsi -exec untuk menjalankan perintah ke setiap
> match. Silakan baca manualnya utk cara pakenya. Bedanya dg pake xargs
> adalah kalo misalnya ada 100 match dari hasil find, maka kalo pake
> -exec perintahnya akan dijalankan 100 kali utk setiap match, sedangkan
> kalo pake xargs cuma seperlunya aja (tergantung batas panjang command
> line arguments di shell), biasanya cuma sekali. Di real life perbedaan
> performance jarang signifikan, jarang berasa bedanya. Jadi mostly cuma
> masalah selera, atau mana yg mudah diingat aja. Saya pribadi lebih
> suka xargs, karena kalo yg -exec mesti diescape2 lagi utk shell,
> males.
>
>   
>> Apakah perlu shell programming.... Terima kasih.
>>     
>
> Yg saya jelaskan di atas sebetulnya salah satu bentuk shell
> programming juga, cuma bisa dijalankan dalam 1 baris (sering disebut
> one-liner) jadi biasanya gak perlu disave ke file. Kita jalanin
> perintah di shell pun itu juga bisa dibilang programming. Dalam bentuk
> yg paling sederhana, mungkin.
>
> Kalo mau mencoba2 yg di atas, apalagi pake rm, mesti extra hati2,
> karena biasanya hampir gak bisa di-undo. Mesti dites dulu bbrp kali
> sampe yakin kalo mau aman. Dan dicek dulu output dari find apakah udah
> bener seperti yg kita mau sebelum bener2 dipipe ke xargs rm. Kalo buat
> latihan mungkin dibackup dulu, dan dicoba2 di file2 dummy atau copy.
>
> Good luck!
>
> Ronny
>   
mantaP.... Terima kasih Ilmu-nya Pak....

-- 
FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab
Unsubscribe: kirim email ke [EMAIL PROTECTED]
Arsip dan info milis selengkapnya di http://linux.or.id/milis

Kirim email ke