我正在运行 Ubuntu Bionic 并探索 Bash Refs。这是一个有趣但神秘的输出ls
。这是shell的文件描述吗?
命令
ls /d*
输出
autofs disk hidraw0 i2c-4 loop1 loop21 loop9 psaux sda5 stdout tty19 tty30 tty42 tty54 tty9 ttyS19 ttyS30 vcs vcsa6
block dri hidraw1 i2c-5 loop10 loop22 loop-control ptmx sda6 tty tty2 tty31 tty43 tty55 ttyprintk ttyS2 ttyS31 vcs1 vfio
bsg drm_dp_aux0 hidraw2 i2c-6 loop11 loop23 mapper ptp0 sg0 tty0 tty20 tty32 tty44 tty56 ttyS0 ttyS20 ttyS4 vcs2 vga_arbiter
btrfs-control drm_dp_aux1 hidraw3 i2c-7 loop12 loop24 mcelog pts sg1 tty1 tty21 tty33 tty45 tty57 ttyS1 ttyS21 ttyS5 vcs3 vhci
bus dvd hidraw4 i2c-8 loop13 loop25 mem random sg2 tty10 tty22 tty34 tty46 tty58 ttyS10 ttyS22 ttyS6 vcs4 vhost-net
cdrom dvdrw hidraw5 i2c-9 loop14 loop26 memory_bandwidth rfkill sg3 tty11 tty23 tty35 tty47 tty59 ttyS11 ttyS23 ttyS7 vcs5 vhost-vsock
cdrw ecryptfs hpet initctl loop15 loop27 mqueue rtc shm tty12 tty24 tty36 tty48 tty6 ttyS12 ttyS24 ttyS8 vcs6 zero
char fb0 hugepages input loop16 loop3 net rtc0 snapshot tty13 tty25 tty37 tty49 tty60 ttyS13 ttyS25 ttyS9 vcsa
console fd hwrng kmsg loop17 loop4 network_latency sda snd tty14 tty26 tty38 tty5 tty61 ttyS14 ttyS26 uhid vcsa1
core full i2c-0 kvm loop18 loop5 network_throughput sda1 sr0 tty15 tty27 tty39 tty50 tty62 ttyS15 ttyS27 uinput vcsa2
cpu fuse i2c-1 lightnvm loop19 loop6 null sda2 sr1 tty16 tty28 tty4 tty51 tty63 ttyS16 ttyS28 urandom vcsa3
cpu_dma_latency fw0 i2c-2 log loop2 loop7 port sda3 stderr tty17 tty29 tty40 tty52 tty7 ttyS17 ttyS29 usb vcsa4
cuse gpiochip0 i2c-3 loop0 loop20 loop8 ppp sda4 stdin tty18 tty3 tty41 tty53 tty8 ttyS18 ttyS3 userio vcsa5
答案1
这是目录的内容/dev
。
ls /d*
由 shell 扩展为
ls /dev
(在大多数系统上,没有其他任何ls
内容),因此继续显示/dev
.
/d*
被解释为一团,表示根目录中以“d”开头的任何内容。如果有多个匹配项,ls
将列出所有匹配的文件,然后列出所有匹配的目录及其内容;您通常可以使用 看到后者ls /l*
。
答案2
*
只是一个占位符,类似于any
逻辑中的。
例如,如果您这样做,它将显示、和ls /c*
的内容。cats
cows
chickens
答案3
您的系统通常只有一个/
以以下内容开头的文件d
:/dev/
/d*
将扩展到这个文件/目录,所以
ls /d*
,将扩展到ls /dev
.
ls
然后显示目录的内容/dev
。