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