判断U盘是否插入,获取U盘设备名和挂载路径

1,判断是否有U盘插入

ls /sys/class/scsi_device/

为空则没有U盘,有类似0:0:0:0的目录则有U盘插入

2,获取U盘设备名

ls /sys/class/scsi_device/[U盘号如:0:0:0:0]/device/block

路径下目录名即为设备名,通过设备命就可以查询U盘挂载路径了

3,查询U盘挂载路径

cat /proc/mounts | grep [设备名如:sda]

为空则未挂载,虽然通过命令:

df -h | grep sda

也可以获取挂载路径,但是一个设备可以同时挂载在多个地方,而df -h只显示最后一次挂载的位置。

4,手动挂载

若设备未挂载则需要自己手动挂载,直接使用mount命令挂载的,无法直接使用普通用户操作U盘内文件,可用以下命令:

sudo mount -t vfat -o uid=用户名如:pi,gid=用户组名如:pi,umask=0000 /dev/设备名如sda1 挂载路径如:/tmp/udisk

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过使用 udev 规则实现在极短的时间内获取到 u 里面的 db.apk 版本号,同时不占用 u 挂载路径,也不会引起下次插入 u 不能挂载的现象。具体实现步骤如下: 1. 编写一个 udev 规则文件,用于检测 u 插入事件,文件为 /etc/udev/rules.d/10-usb.rules。 2. 在规则文件添加以下内容: ``` ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd*", KERNELS=="*", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", SYMLINK+="usbstick", RUN+="/usr/local/bin/check_db_version.sh" ``` 上述规则,idVendor 和 idProduct 分别为 u 的厂商 ID 和产品 ID,可以通过 `lsusb` 命令获取。`SYMLINK` 用于创建一个 udev 设备符号链接,将 u 挂载到 `/dev/usbstick` 路径下。`RUN` 用于指定在 u 插入事件发生时执行的脚本,即 `/usr/local/bin/check_db_version.sh`。 3. 编写一个检查版本号的脚本 `/usr/local/bin/check_db_version.sh`,用于获取 u 里面 db.apk 的版本号,并与系统已安装版本进行比较。这个脚本可以通过使用 `unzip` 命令解压 u 里面的 db.apk 文件并读取其的版本号信息,然后与系统已安装版本进行比较。 ``` #!/bin/sh APK_PATH="/dev/usbstick/db.apk" VERSION=$(unzip -p $APK_PATH "META-INF/MANIFEST.MF" | grep "^versionName" | cut -d':' -f2) INSTALLED_VERSION=$(adb shell dumpsys package com.example.db | grep versionName | cut -d'=' -f2) if [ "$VERSION" = "$INSTALLED_VERSION" ]; then echo "版本一致" else echo "版本不一致" fi ``` 上述脚本,`APK_PATH` 指定 u 里面的 db.apk 文件路径,`VERSION` 通过 `unzip` 命令解压 db.apk 文件并读取其的版本号信息。`INSTALLED_VERSION` 通过 `adb` 命令获取系统已安装的 db.apk 版本号。最后比较两个版本号是否一致。 通过上述步骤,即可实现在极短的时间内获取到 u 里面的 db.apk 版本号,同时不占用 u 挂载路径,也不会引起下次插入 u 不能挂载的现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值