On Saturday 07 January 2006 19:01, Arief Yudhawarman wrote:
> > > Cara yg lazim spt ini tdk bisa:
> > >
> > > $ for i in `cat daftar.txt`; do rm -f "$i"; done
> >
> > Tidak bisanya kenapa? Ada message apa?
>
> Tidak bisanya karena nama filenya mengandung spasi maka
> hasilnya kayak begini (sengaja saya hilangkan option "-f" agar
> error message dr tool rm ditampilkan):
>
> rm: cannot remove `/home/data/samba/Data/Master/Office': No such file or
> directory
> rm: cannot remove `XP/Office': No such file or directory
> rm: cannot remove `XP.exe': No such file or directory
> ...dst..

Bahaya itu kalo kebetulan ada file (bukan direktori) dg nama yg sama tapi gak 
ingin dihapus. Kalo pake perintah2 looping gitu saya selalu test dulu dengan 
echo, gak langsung hajar perintahnya, apalagi kalo rm, lebih2 lagi kalo rm 
-f, mesti tes sampe perfect baru dijalanin.

Itu karena "for i in ..." menganggap spasi sebagai delimiter, kecuali tiap 
baris dienclose dg quotation, seperti ini:

        "file satu"
        "file dua"
        ...dst...

Kalo gak pake quotes, yg di belakang "in" kalo udah diexpand jadi sama 
seperti:

        for a in file satu file dua file tiga ; do ... ; done

Makanya pake cat kalo bukan buat concatenate itu biasanya cenderung salah.

> Terimakasih banyak Mas Ronny ! Soalnya ini yg saya cari.

No worries.

Ronny

-- 
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