“ls /d*”返回的是什么?

“ls /d*”返回的是什么?

我正在运行 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*的内容。catscowschickens

答案3

您的系统通常只有一个/以以下内容开头的文件d/dev/

/d*将扩展到这个文件/目录,所以

ls /d*,将扩展到ls /dev. ls然后显示目录的内容/dev

相关内容