Cat 显示完整的文件。这非常适合本例中的小文件,但是假设您有一个非常大的文件。首先,您可能需要使用 wc(Word Count)命令查看文件的大小。wc 命令将显示文件中所含的行、单词、字节的数量。您还可以通过 ls -l 命令获得字节数。清单 8 展示了我们的两个文本文件的长(long)格式的目录清单,以及 wc 的输出。
清单 8. 对文本文件使用 wc
[ian@echidna lpi103-2]$ ls -l text* -rw-rw-r--. 1 ian ian 24 2009-08-11 14:02 text1 -rw-rw-r--. 1 ian ian 25 2009-08-11 14:27 text2 [ian@echidna lpi103-2]$ wc text* 3 6 24 text1 3 6 25 text2 6 12 49 total
可以使用选项控制 wc 的输出,或者显示其他信息,比如行的最大长度。参考手册页获得更多细节。
可以使用两个命令显示文件的开始部分(head)或结束部分(tail)。这两个命令就是 head 和 tail。可以将它们用作过滤器,或者将文件名作为命令的参数。默认情况下,这两个命令将显示文件或流的前 10(或后 10)行。清单 9 使用 dmesg 命令显示启动信息,并结合使用 wc、tail 和 head 执行下面的操作:发现共有 791 行消息,显示这些消息中的最后 10 条消息,最后显示倒数 15 条消息中的前 6 条消息。某些行在输出中被截短(使用 ... 表示)。
清单 9. 使用 wc、head 和 tail 显示启动消息
[ian@echidna lpi103-2]$ dmesg|wc 791 5554 40186 [ian@echidna lpi103-2]$ dmesg | tail input: HID 04b3:310b as /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput12 generic-usb 0003:04B3:310B.0009: input,hidraw1: USB HID v1.00 Mouse [HID 04b3:310b] on us b-0000:00:1a.0-2.4/input0 usb 3-2.4: USB disconnect, address 11 usb 3-2.4: new low speed USB device using uhci_hcd and address 12 usb 3-2.4: New USB device found, idVendor=04b3, idProduct=310b usb 3-2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 3-2.4: configuration #1 chosen from 1 choice input: HID 04b3:310b as /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput13 generic-usb 0003:04B3:310B.000A: input,hidraw1: USB HID v1.00 Mouse [HID 04b3:310b] on us b-0000:00:1a.0-2.4/input0 usb 3-2.4: USB disconnect, address 12 [ian@echidna lpi103-2]$ dmesg | tail -n15 | head -n 6 usb 3-2.4: USB disconnect, address 10 usb 3-2.4: new low speed USB device using uhci_hcd and address 11 usb 3-2.4: New USB device found, idVendor=04b3, idProduct=310b usb 3-2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 usb 3-2.4: configuration #1 chosen from 1 choice input: HID 04b3:310b as /devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.4/3-2.4:1.0/input/i nput12
tail 的另一个常见用法就是使用 -f 选项跟踪(follow)文件,通常使用一个行计数 1。当您拥有一个在文件中生成输出的后台进程并且希望执行签入以查看操作时,那么很可能需要利用这点。在这种模式下,tail 将一直运行,直到您将其取消(使用 Ctrl-c),它将在行被写入文件时显示它们。