On 10-Apr-2000, Hanafi Tanudjaja wrote:
> Nanya lagi (he he nanya melulu )
Kalo nggak ya sepi nih milis :)
> Bagaimana perintahnya supaya ouput dari ls -?? hanya file file yg tak
> punya extension.
Pertama, ada baiknya dipahami bahwa "extension" itu hanya pandangan
user, OS-nya sendiri tidak tahu menahu soal "extension". Tanda titik
di filename ya hanya tanda titik, tidak punya arti khusus di mata
OS-nya.
Trivia quiz:
- apa bedanya 'rm -f *.*' dan 'rm -f *' ?
- bagaimana menghapus semua files, termasuk dot-files? tapi tidak
menghapus direktorinya..
Menjawab pertanyaan anda, umumnya anda bisa menggunakan pattern
matching dari shell, namanya glob. Contoh globbing itu '*' atau
'*log*txt'. Jadi misalnya anda mengetikkan 'ls -l *txt' di shell, maka
si shell akan menerjemahkan dulu globnya baru meng-execute program ls.
Misalnya di dir tsb hanya ada 2 file yg berakhiran txt: a.txt dan
xyztxt, maka si program ls akan diexecute: 'ls -l a.txt xyztxt' oleh
si shell. Si ls tidak bisa menerjemahkan apa itu artinya '*', dst.
Nah jadi anda tinggal mencari patternnya supaya globbing file yg
namanya tidak mengandung 'titik yg diikuti 0 or more characters'.
Untuk mempelajari globbing ini, silakan baca 'man bash' (cari
'Pathname Expansion' dengan menekan '/').
Sayangnya, pattern di atas itu regular language, jadi butuh regular
expression, kayaknya nggak bisa pake shell globbing. Jadi kalo saya
begini:
/bin/ls | grep -v '\.' | xargs ls -ld
'\.' itu regular expressionnya yg akan matching semua yg mengandung
titik, tapi -v artinya hasilnya diinvert, print hanya kalo tidak
matching.
Kalo anda butuh yg lebih kompleks, misalnya jangan list direktori,
cuma files aja, saya sarankan pake 'find', misalnya:
find -maxdepth 1 -type d -not -regex '\.' -not -path './.*' | xargs ls -ld
Loh, kok jadi panjang lebar? hehehe..
Ronny
--------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]