我如何知道是本地 HDD 还是 USB 密钥?我更喜欢一种没有root权限的方法。/dev/sdX
好的,udevadm
帮了大忙:
对于本地硬盘:
udevadm info --query=all --name=sdb | grep ID_BUS
E: ID_BUS=ata
Run Code Online (Sandbox Code Playgroud)
对于 USB 密钥:
udevadm info --query=all --name=sdc | grep ID_BUS
E: ID_BUS=usb
Run Code Online (Sandbox Code Playgroud) 在我的问题Bash 脚本输出到 USB 闪存棒的路径中,我遇到了一个似乎没有其他人遇到的问题。(这个问题也阻碍了我使用这个答案的愿望。)
所以我把那个具体问题变成了这个新问题。
显然/sys/block
以 1 结尾的可移动设备。这里和本站点的其他几个地方都说明了这一点,我在上面引用的答案中使用了这一原则。
我的可移动设备 Sandisk 64GB 闪存棒被列为:
/sys/block/sdl/removable:0
Run Code Online (Sandbox Code Playgroud)
显然,可移动设备应该以 1 结尾(我的其他人也是如此)。为什么我的 U 盘不符合规则?
它是由 Dolphin 自动安装的。我正在运行 Kubuntu 12.04。
Dolphin 将其显示为“59.6GiB 可移动媒体”。
它安装(自动)在 /media/me/70E8-1567
sudo blkid
显示为:
/dev/sdl1: UUID="70E8-1567" TYPE="vfat".
Run Code Online (Sandbox Code Playgroud)
lsblk -do name,rm
显示:
sdl 0
Run Code Online (Sandbox Code Playgroud)
并lsusb -vv
显示:
Bus 001 Device 008: ID 0781:5530 SanDisk Corp. Cruzer
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 …
Run Code Online (Sandbox Code Playgroud) 如何使用 bash(Ubuntu 和 Linux Mint)返回(输出)连接到本地计算机的任何 USB 闪存棒的路径?
我正在为用户提供一个自动备份脚本。(实际的备份软件已经安装在他们的计算机上。)
用户的工作是插入 U 盘并在终端输入一个命令(不带任何参数、选项或任何其他变量信息)。
我需要一个可以找到 U 盘路径的 bash 脚本。如果找到不止一个这样的路径,我可能会中止并弹出一条消息与我联系。与其制作复杂的脚本,我更容易告诉他们确保在他们希望执行备份时只有一个记忆棒插入计算机。
bash ×2
usb-drive ×2
automounting ×1
filesystems ×1
hard-disk ×1
hardware ×1
path ×1
shell-script ×1