Yanıtlar:
Belirli bir aygıt kullanabilirsiniz bağlı olup olmadığını test etmek grep
ile -q
çıkış aramak için seçenek lsusb
ya lsblk
, mesela
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
veya if
:
uuid=f9035fce-b3a1-4aee-80ef-44e432b78fdb
if lsblk -f | grep -wq $uuid; then
echo yes
else
echo no
fi
Her ikisi de cihazın takılı olup olmadığına bakılmaksızın kullanılabilir.
/dev/disk/
, gerçek cihazlara sembolik bağlantı içeren aşağıdaki dizinleri içerir. Bu bağlantılar dinamik olarak oluşturulur ve tarafından kaldırılır udev
, bu nedenle her zaman günceldirler:
Dolayısıyla, sembolik bağlantının varlığını kontrol etmek daha az kaynak kullanır.
Seri numarasını kullanarak bir diskin varlığını test eden bir örnek:
test -e /dev/disk/by-id/wwn-0x5002538d408be9e0 && echo yes || echo no
Yedek komut dosyamda disk varlığını bile kontrol etmiyorum, sadece mount
komutun sonucunu şu şekilde kontrol ediyorum :
mount -o noatime $DESTINATION_PARTITION $DESTINATION_DIR || exit 1
lsusb
harici diskiniz USB arabirimi üzerinden bağlıysa bağlı usb cihazını listelemek için.
lsblk -f
harici diskiniz bir blok cihaz olduğu için blok cihazları, UUID'leri ve bağlantı noktalarını listelemek için.
-f
listelemeniz gerekiyor ? Varsayılan çıktı yine de bunları listeler
findfs
bunun için yapılır. Şuna göre arama yapabilirsiniz:
FS etiketi
findfs LABEL="Ubuntu" &>/dev/null
FS uuid
findfs UUID="f9035fce-b3a1-4aee-80ef-44e432b78fdb" &>/dev/null
GPT etiketi
findfs PARTLABEL="EFI system partition" &>/dev/null
findfs PARTUUID="85e66d2f-3709-4060-938e-ffe836433cc9" &>/dev/null
Aramalar büyük / küçük harfe duyarlıdır. Birden çok bölüm eşleşirse, yalnızca son bölüm görüntülenir.
lsblk -f | grep f9035fce-b3a1-4aee-80ef-44e432b78fdb | grep / -q && echo yes || echo no
.