查找 USB 记忆棒的挂载点或路径的命令是什么?

查找 USB 记忆棒的挂载点或路径的命令是什么?

我需要能够仅检索 USB 记忆棒的挂载点或路径。这是用于该目的的命令吗?lsblk -r | grep usb我执行了该命令,它返回以下内容。sda1 /media/usb0我只想要记忆棒的挂载点或路径。

答案1

我想出了一个命令lsblk。它使用 MOUNTPOINT 和 HOTPLUG 选项来帮助识别。如果驱动器是可移动的(如 USB 驱动器),HOTPLUG 将返回 1。sr0 类型的驱动器是可移动/热插拔的,但那些是 CD/DVD 驱动器。我还停止了循环设备,因为它们也显示它们是可移动/热插拔的。

我想到的命令如下:

lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'

由于我有一个 USB 驱动器,因此可以产生以下结果。

terrance@terrance-ubuntu:~$ lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'

/media/terrance/E627-3C44

这是我插入的 USB 驱动器的确切挂载点。

笔记:看起来 Ubuntu 14.04 可能不会使用相同的选项,lsblk因此您可以使用命令RM而不是HOTPLUG

lsblk -o NAME,RM,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'

或者,您可以使用TRAN我在 16.04 中测试过的类型,即device transport type。提供不同的输出,可能更容易编写脚本。

lsblk -o NAME,TRAN,MOUNTPOINT

产生如下输出:

terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT
NAME   TRAN   MOUNTPOINT
loop1         /snap/canonical-livepatch/17
sdb    usb    
└─sdb1        /media/terrance/E627-3C44
loop4         /snap/core/1441
sr0    sata   
loop2         /snap/core/1287
loop0         /snap/canonical-livepatch/21
sda    sata   
├─sda2        
├─sda5        [SWAP]
└─sda1        /
loop3         /snap/core/1337

由于 MOINTPOINT 列在 usb 后的下一行,我们将使用grep -A 1它来抓取下一行并用它awk '{print $2}'来打印该行上的第二列输出:

terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT | grep -A 1 -w usb | grep -v usb | awk '{print $2}'
/media/terrance/E627-3C44

希望这可以帮助!

答案2

类型:

df #显示所有已知设备的挂载点

对于你来说,它将是这样的:

/媒体/sr0

/媒体/usb0

我不认为它是 sda1,它通常是启动驱动器

相关内容