Dulu saya gunakan cat
untuk melihat file. Kemudian saya belajar bahwa less
biasanya lebih baik, dan suatu keharusan jika file lebih panjang dari beberapa lusin baris.
Pertanyaan saya: Apakah pernah ada alasan untuk menggunakan cat
bukan less
? Apakah ada situasi di mana cat
solusi yang lebih baik?
less
dancat
memecahkan masalah yang berbeda dan mereka masing-masing lebih baik daripada yang lain dalam domain masalah mereka sendiricat
untuk mengirim outputless
setelah itu.cat
untuk mencetak file yang sangat pendek ke konsol, file dalam/proc
dan/sys
adalah kandidat yang sangat bagus. Dengan cara ini saya bisa melihat konten beberapa file secara bersamaan.Jawaban:
Saya pribadi lebih suka
view
untuk konten statis atautail -f
untuk konten dinamis.Ini tidak menjawab pertanyaan Anda. Ada pepatah "mengapa menggunakan lebih banyak jika Anda memiliki lebih sedikit" ;-)
Tetapi ada beberapa kasus di mana saya lebih suka kucing daripada kurang: Saya biasanya bekerja dengan X11-windows. Jendela-jendela ini memiliki buffer-gulir yang dapat diatur ke beberapa ratus baris.
Melakukan
cat
untuk - katakanlah 200 baris dan kemudian menggunakan mouse dengan scroll-bar lebih nyaman bagi saya daripada menggunakanless
dalam kasus ini.sumber
view
maksudmu biasavim -R
, atau Anda memiliki sesuatu yang lain dengan nama itu?less +F
melakukan apa yangtail -f
dilakukannya.view
bukan alias; itu adalah tautan (kevi
atauvim
).vi
melihatargv[0]
ketika mulai (untuk melihat nama apa itu dipanggil di bawah) dan, jika ituview
ataurview
, itu mengatur mode read-only (seolah-olah Anda telah mengetikvim -R
).Meskipun kedua perintah memungkinkan Anda untuk melihat konten file, tujuan aslinya sangat berbeda.
kurang memperluas kemampuan lebih . Yang terakhir ini dibuat untuk melihat konten file satu layar penuh pada suatu waktu. kurang menambah fitur seperti gerakan mundur dan manajemen memori yang lebih baik (tidak perlu membaca seluruh file sebelum dapat melihat baris pertama).
cat menyatukan file dan mencetak hasilnya pada output standar. Jika Anda hanya menyediakan satu file, Anda akan melihat konten file itu. Itu menjadi 'kuat' ketika Anda memberikan banyak file. Contoh yang baik adalah kombinasi split dan cat. Perintah pertama akan membagi file besar dalam porsi kecil. Yang kedua kemudian akan menggabungkan bagian-bagian kecil menjadi satu file.
Kembali ke pertanyaan Anda, cat akan lebih disukai dalam skrip otonom yang membutuhkan file untuk dibaca seluruhnya (atau digabungkan) tanpa interaksi. Dalam hal melihat file, saya pikir ini lebih merupakan masalah selera.
sumber
less
selalu memungkinkan untuk mencari di dalam file, yangcat
tidak.Saya biasanya menggunakan
cat
ketika saya harus mengetik perintah berdasarkan sesuatu di file.cat
lebih nyaman karena Anda dapat melihat file (jika kecil) saat Anda memiliki akses ke prompt shell. Ini juga memungkinkan untuk lapisan pipa.sumber
Ketika Anda berurusan dengan lebih dari satu file dan ingin menyatukannya.
Dari halaman manual:
sumber
Ada orang yang berpendapat keras bahwa satu-satunya tujuan
cat
adalah untuk menipu kucing file enate. Untuk setiap penggunaan lainnya, adamore
(atauless
).Tetapi ini gagal untuk memperhitungkan satu fakta yang cukup penting:
cat
adalah satu karakter yang kurang diketik. Saya menggunakan perintah-perintah itu begitu sering sehingga satu karakter kurang adalah no-brainer.Alasan lain adalah ketika Anda ingin membuat file. Saya sering menyalin dan menempelkan teks dari web ke file seperti ini (command prompt ditampilkan):
Artinya, saya membuka file
filename
untuk akses tulis, tempel konten dan tutup aliran dengan menekan Ctrl- D. Baikless
jugamore
bisa melakukan itu, dan itu lebih cepat dari membuka editor.sumber
$<filename
(di mana$
ada prompt) memanggil $ PAGER dengan stdin terhubungfilename
. Itu bahkan lebih sedikit karakter untuk diketik daripadacat
.pbpaste > filename
, dan saya percaya X memiliki sesuatu yang serupa. Saya masih menggunakancat
untuk membuat file cepat, hanya saja tidak untuk menempel.pbcopy
/pbpaste
untuk tujuan lain.q
untuk keluarless
: DTerkadang Anda tidak menginginkan pagination yang berfungsi
less
dan hanya menginginkan file lengkap sehingga Anda akan menggunakannyacat
.sumber
Saya gunakan
cat
untukgrep
(banyak) file.cat <filename1> [<filename2> <filename3>] | grep -i "string of interest"
Saya tahu
grep
mendukung nama file, tetapi Jika Anda memilih file yang sama untuk istilah pencarian yang berbeda, mengedit perintah di mana istilah pencarian adalah hal terakhir pada baris lebih mudah maka harus ctrl + tombol panah kembali melalui baris.sumber
cat
dapat digunakan untuk menggabungkan beberapa file biner menjadi satu file besar:sumber
Saya menggunakan
less -FX
, yang membuatless
berperilaku seperticat
ketika file dapat ditampilkan pada satu layar. Dari halamanless(1)
manual:sumber
Saya kira, karena varian Unix yang sekarang sangat kebal, banyak orang tidak perlu mengelola sistem mereka (dengan vengence). Ketika segalanya berubah, Anda mungkin hanya bisa reboot dan memasuki sistem Anda dalam apa yang disebut lingkungan terbatas.
Anda mendapatkan baris perintah dan akses ke satu set kecil dari apa yang dianggap perintah yang berguna yang kecil dan biasanya terhubung secara statis. Anda mungkin mendapatkan vi sebagai editor atau bahkan ed yang lebih kecil, tetapi bukan emacs atau vim. Anda akan mendapatkan kucing, tetapi tidak kurang. Idenya adalah untuk memberi Anda cukup alat untuk memperbaiki sistem Anda tanpa mengambil terlalu banyak sumber daya karena sumber daya tersebut mungkin tidak dikonfigurasi dengan benar, atau semua digunakan. semakin sedikit perintah pada situasi itu berlebihan.
sumber
Dan
less
tidak diinstal sebelumnya pada semua distribusi GNU / Linux. (mis. Gentoo)cat
ada di mana-mana, mungkin.sumber
The
cat
menginap pada layar. Semuanyaless
menghilang.Klarifikasi oleh / untuk Volker Siegel:
Output
cat
tetap di layar. Semuanya ditampilkan olehless
menghilang setelah ditutup.sumber
Mungkin ada masalah dengan eskalasi hak istimewa, karena dalam 'kurang' Anda dapat menekan 'v' untuk mengedit file atau '!' untuk mengirim perintah shell.
Anda mungkin ingin mengizinkan beberapa pengguna untuk melihat file yang hanya bisa dibaca oleh pengguna super, tetapi tidak mengizinkan pengguna untuk mengedit file atau menggunakan hak akses pengguna super secara umum. Anda dapat melakukan ini dengan mengedit '/ etc / sudoers' untuk memungkinkan mereka menggunakan 'sudo / bin / cat / etc / importantfile'. Anda tidak ingin mengizinkan 'sudo / usr / bin / less / etc / importantfile', karena mereka dapat menggunakan 'v' untuk mengedit file, atau menggunakan '!' untuk meluncurkan shell dengan hak superuser penuh.
Tentu saja, pengguna dapat menggunakan 'sudo / bin / cat / etc / importantfile | kurang 'dan masih menggunakan' kurang ', tanpa risiko keamanan.
sumber
Keduanya berbeda.
less
adalah pager non-standar (more
adalah pager standar), digunakan untuk melihat teks, sementaracat
merupakan utilitas standar, digunakan untuk menggabungkan semua jenis dan jumlah aliran data menjadi satu.Mereka mungkin terlihat melakukan hal yang sama dalam beberapa keadaan, tetapi sekali lagi, begitu juga utilitas lain.
sumber
Untuk kenyamanan. kucing memiliki 3 karakter sementara lebih / kurang memiliki 4 karakter. Dan mengetik kucing hanya membutuhkan tangan kiri saja.
sumber
Dalam hal cara menunjukkan karakter di layar,
less
dapat melakukan apa yangcat
bisa dilakukan; Dan banyak lagi.Tapi ada alasan yang sangat baik untuk menggunakan cat untuk beberapa kasus:
less
hanya terlalu rumit untuk membuangnya pada masalah yang sangat sederhana. Saya memiliki begitu banyak pilihan sehingga sulit untuk menemukan yangcat
terkait di halaman manual.Ingin menampilkan tab dalam
Makefile
?Dalam
man cat
, opsi pertama adalah-A
.Deskripsi adalah tidak membantu:
-vET
.Tapi nama pilihan lama terdengar tepat:
--show-all
.Dan
cat -A Makefile
melakukan apa yang saya butuhkan.Sekarang, cari untuk itu
less
.sumber
Baik 'kurang' dan 'lebih' akan bekerja persis seperti 'cat' jika outputnya bukan terminal (tty), seperti untuk pipa dan file, keduanya akan kembali ke tidak ada pagination.
Saya pikir aman untuk mengatakan bahwa 'cat' selalu ada di sistem Unix-type yang akan Anda temukan. Kehadiran 'kurang' dan / atau 'lebih' pada sistem apa pun kurang dapat diprediksi.
Karena itu, dalam skrip, jika Anda hanya memerlukan operasi non-pagination, 'cat' pasti akan hadir di mana pun skrip Anda digunakan pada sistem tipe Unix.
sumber
more
akan tersedia, mengingat itu diamanatkan oleh Spesifikasi Unix Tunggal.less
ataumore
akan hadir, tapi saya pikir seseorang tidak dapat mempercayai yang tertentu, juga bahwa itu adalah implementasi 'benar' ... sering satu sama lain, kadang-kadang mereka ' kembali versi ringan minimal.Piping cat melalui grep berguna:
sumber
grep
menggunakan nama file sebagai argumen, atau Anda bisa menggunakan pengalihan. Pipa itu mahal.less
" ada dalam judul pertanyaan ...grep [search term] [filename]
Oleh karena itu, lebih sulit untuk mengedit istilah pencarian jika saya menggunakan riwayat terminal. Dengan mem-pipkan ke grep, istilah pencarian adalah hal terakhir di telepon, dan lebih mudah diedit.cat
:< [filename] grep [search term]
dan< filename tail -n 1000 | grep pattern
. Pengalihan bisa cukup banyak di mana saja di baris perintah.