Lebih baik hindari kucing; tulis seperti ini jika pengeditan baris penting:
$ < filename grep pattern
Alasannya adalah bahwa mendorong semua data melalui cat membutuhkan memori dan sumber daya CPU. Manfaat lain dari meneruskan nama file sebagai argumen daripada redirect stdin adalah memungkinkan perintah opsi untuk mmap() file.
Saya tidak percaya belum ada yang mereferensikan "Useless Use of Cat" http://www.smallo.ruhr.de/award.html
Ada satu keuntungan yang dipertanyakan. Jika Anda memiliki alur yang panjang, tampilannya sedikit lebih ortogonal dengan cat:
cat file | command1 | command 2 | command3
Itu mengelompokkan semua perintah bersama-sama.
Tentu saja seperti yang orang lain katakan (dan saya lakukan)
< file command1 | command2 | command3
Melakukan hal yang hampir sama. Konon, cat cukup kecil dan tidak akan mematikan komputer Anda jika Anda menggunakannya saat tidak benar-benar diperlukan.
Biasanya menggunakan cat
vs langsung memukul file tidak mengubah apa pun, tetapi itu membuat perbedaan untuk perintah tertentu yang peduli jika ada banyak file sebagai argumen, seperti grep
. Contoh kasus:
cat file1 file2 | grep SOMETHING
akan memiliki output yang berbeda dari
grep SOMETHING file1 file2
Yang akan memiliki nama file yang cocok di output. Ada kalanya saya tidak menginginkan nama file, dan merupakan keuntungan menggunakan cat
.
Tidak ada keuntungan. Kursor Anda berada di akhir juga tidak masalah jika Anda menyusunnya seperti ini:< inputfile grep -args foo