终端查找 USB 信息的命令是什么?

终端查找 USB 信息的命令是什么?

我知道我可以通过进入文件管理器来找到我的闪存驱动器的名称/media/user/nameOfFlashdrive。但是,是否有一个终端命令,我可以在其中输入闪存驱动器的名称,它会告诉我驱动器连接在哪里,例如/dev/sdb1

答案1

实际上有多个命令可以实现这一点。你可以使用文本处理工具过滤输出,通常它们的输出足够小,可以在一屏内读完。

blkid

这个简洁的命令本身,顾名思义,显示有关块设备的信息。-L您可以使用标签(名称)搜索特定设备。

$ blkid -L DTSE9                                               
/dev/sdb1

df

这个简洁的命令是coreutils软件包的一部分,显示“设备文件”的块大小和使用情况。它仅显示已安装的设备的信息(换句话说,链接到某个文件夹)。例如,

/dev/sdb5      115247656 84753976  24616332  78% /media/WINDOWS

告诉我第二个硬盘上的 Windows 分区已链接到/media/WINDOWS分区。

udisksctl

$ udisksctl status                                             
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
Radeon R7                 1.01      A22MD061520000172    sda     
TSSTcorp CDDVDW SU-208GB  TF01      S16T6YEFB00NKH       sr0 

非常方便的命令,可列出磁盘所链接的型号和设备文件。在上面的示例中,我的 Radeon R7 SSD 已链接到/dev/sda设备。

如果我们深入了解更多细节,udisksctl info -b /dev/sda将会列出许多附加信息,包括大小和符号链接。

如果我们想疯狂一点,udisksctl dump将会在所有磁盘上产生详细的输出。

partedfdisk

这两个命令都是磁盘实用程序,用于分区、调整大小以及许多其他有趣的操作。但是,两者都需要使用sudo。两者都输出大量详细信息

find

这是一种更“动手”的方法。Linux 下的所有设备都有一个特殊的设备文件(还记得 Unix 哲学吗?即一切都是文件?它在这里最适用)。知道有文件,/dev/disk/by-label我们可以搜索该目录,或者我们可以进行/dev/disk一般搜索。这绝对是一个更高级用户可以欣赏的工具

$ find -L /dev/disk/by-label/ -name "DTSE9" -exec readlink -e {} \;               
/dev/sdb1

lsblk

已由 Jacob 介绍。

mount

$ mount | grep "DTSE9"                                                            
/dev/sdb1 on /media/xieerqi/DTSE9 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)

列出所有已安装的文件系统。可以使用以下命令进行过滤以grep查找特定文件系统。这类似于执行grep 'DISKNAME OR UUID' /proc/mounts

lshw

此命令提供有关系统上所有硬件的信息。特别是,您可以查看有关lshw -c disk整个设备或lshw -c volume分区使用的磁盘的信息,您应该看到类似以下行的输出:

logical name: /dev/sdc1
   logical name: /media/xieerqi/BA02-AF80

答案2

您可以简单地使用:

lsblk | grep <flashdrive>

在我的情况下这将输出运行

$ lsblk | grep Passport
└─sdb1   8:17   0   1,8T  0 part /media/jacob/My Passport1
└─sdc1   8:33   0 698,6G  0 part /media/jacob/My Passport

您可以在其中看到设备和挂载点。如您所见,我有两个 USB 驱动器,分别名为My Passport

仅获取设备

$ lsblk | grep Passport | awk '{ print $1 }'
└─sdb1
└─sdc1

相同,但输出更精确:

$ lsblk | grep Passport | awk -F'[─ ]' '{ print $2 }'
sdb1
sdc1

或者,正如@kos (谢谢!) 所建议的,甚至更简单,使用lsblk选项-l(这将└─在设备之前省略输出中的):

$ lsblk -l | grep Passport | awk '{ print $1 }'
sdb1
sdc1

或者(也按照@kos 的建议),您可以不用该grep命令,只使用lsblkand awk

$ lsblk -l | awk '/Passport/{ print $1 }'
sdb1
sdc1

解释

  • lsblk将列出所有已安装的设备
  • grep <flashdrive>将仅列出与您的设备名称匹配的行,如下所示:

    └─sdc1   8:33   0 698,6G  0 part /media/jacob/My Passport
    
  • awk -F'[─ ]' '{ print $2 }'将用两个分隔符来分割行:

    (这是└─中的第二个字符)

    和一个空格。

随后,我们就可以轻松获得我们需要的部分。

答案3

...附加上面的综合答案:

lsusb

lsusb是一个用于显示系统中 USB 总线及其所连接设备的信息的实用程序。

手册页。 !

相关内容