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

ThN*_*ThN 0 command-line usb mountpoint

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

Ter*_*nce 5

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

\n\n

我想出的命令如下:

\n\n
lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk \'{print $3}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会产生以下结果,因为我有一个 USB 驱动器。

\n\n
terrance@terrance-ubuntu:~$ lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk \'{print $3}\'\n\n/media/terrance/E627-3C44\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我插入的 USB 驱动器的确切安装点。

\n\n

注意:看起来 Ubuntu 14.04 可能不会使用相同的选项,lsblk因此您可以使用命令来RM代替HOTPLUG

\n\n
lsblk -o NAME,RM,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk \'{print $3}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
lsblk -o NAME,TRAN,MOUNTPOINT\n
Run Code Online (Sandbox Code Playgroud)\n\n

产生如下输出:

\n\n
terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT\nNAME   TRAN   MOUNTPOINT\nloop1         /snap/canonical-livepatch/17\nsdb    usb    \n\xe2\x94\x94\xe2\x94\x80sdb1        /media/terrance/E627-3C44\nloop4         /snap/core/1441\nsr0    sata   \nloop2         /snap/core/1287\nloop0         /snap/canonical-livepatch/21\nsda    sata   \n\xe2\x94\x9c\xe2\x94\x80sda2        \n\xe2\x94\x9c\xe2\x94\x80sda5        [SWAP]\n\xe2\x94\x94\xe2\x94\x80sda1        /\nloop3         /snap/core/1337\n
Run Code Online (Sandbox Code Playgroud)\n\n

由于 MOINTPOINT 列在 USB 之后的下一行,因此我们将用于grep -A 1抓取下一行并用于awk \'{print $2}\'打印该行的第二列输出:

\n\n
terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT | grep -A 1 -w usb | grep -v usb | awk \'{print $2}\'\n/media/terrance/E627-3C44\n
Run Code Online (Sandbox Code Playgroud)\n\n

希望这可以帮助!

\n