Jawaban:
Untuk menguji apakah perangkat tertentu tersambung Anda dapat menggunakan grep
dengan -q
pilihan untuk mencari output dari lsusb
atau lsblk
, misalnya
uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
lsblk -f | grep -wq $uuid && echo yes || echo no
devicename="some Inc. Keyboard"
lsusb | grep -q "$devicename" && echo yes || echo no
atau dengan if
:
uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
if lsblk -f | grep -wq $uuid; then
echo yes
else
echo no
fi
Keduanya dapat digunakan tidak masalah apakah perangkat sudah terpasang.
/dev/disk/
berisi direktori berikut, yang berisi tautan simbolis ke perangkat nyata. Tautan ini dibuat dan dihapus secara dinamis oleh udev
, sehingga selalu diperbarui:
Jadi memeriksa keberadaan symlink akan menggunakan lebih sedikit sumber daya.
Berikut adalah contoh pengujian keberadaan disk menggunakan nomor seri:
test -e /dev/disk/by-id/wwn-0x5002538d408be9e0 && echo yes || echo no
Di skrip cadangan saya, saya bahkan tidak memeriksa keberadaan disk, saya hanya memeriksa hasil dari mount
perintah seperti ini:
mount -o noatime $DESTINATION_PARTITION $DESTINATION_DIR || exit 1
lsusb
untuk daftar perangkat USB yang terhubung jika disk eksternal Anda terhubung melalui antarmuka USB.
lsblk -f
untuk mencantumkan perangkat blok, UUID dan titik pemasangannya karena disk eksternal Anda adalah perangkat blok.
-f
mendaftar poin mount? Output default tetap mendaftarkan mereka
findfs
dibuat untuk ini. Anda dapat mencari berdasarkan:
Label FS
findfs LABEL="Ubuntu" &>/dev/null
FS uuid
findfs UUID="f9035fce-b3a1-4aee-80ef-44e432b78fdb" &>/dev/null
Label GPT
findfs PARTLABEL="EFI system partition" &>/dev/null
findfs PARTUUID="85e66d2f-3709-4060-938e-ffe836433cc9" &>/dev/null
Pencarian bersifat case-sensitive. Jika beberapa partisi cocok, hanya yang terakhir yang ditampilkan.
lsblk -f | grep f9035fce-b3a1-4aee-80ef-44e432b78fdb | grep / -q && echo yes || echo no
.