Yanıtlar:
Belirli bir aygıt kullanabilirsiniz bağlı olup olmadığını test etmek grepile -qçıkış aramak için seçenek lsusbya 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 mountkomutun 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.
-flistelemeniz gerekiyor ? Varsayılan çıktı yine de bunları listeler
findfsbunun 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.