Speccyfighter, спасибо большое за подробный ответ!
Только у меня почему-то Ваши примеры работают, если в команде find указываю маску поиска usb-*, а не usb*.
Странно... У меня этого не происходит. Но всё равно спасибо за замечание: последний скрипт поправил.
Ещё хотел у Вас спросить, нет ли случайно не примете команды, которая выводит путь usb-носителю, который был вставлен последним?
Нет, у меня нет под руками, я ведь даже не шелл-кодер. Только об этом наверное никто не догадывается.

Тем не менее, попробуйте это
# BLKUSB=$(find /dev/disk/by-id/ -name usb-*) && [ -z "$BLKUSB" ] || \
ls -lt --time-style=full-iso $BLKUSB|grep -v sd[a-z][1-9]|head -n 1|cut -d '>' -f2|sed 's/ ..\/../\/dev/'
/dev/sdb
В этом скрипте сменилось имя переменной с DEVUSB на BLKUSB, поскольку последнее выглядит более логично для выполняемой операции: поиск блочных USB-устройств, т.е накопителей.
Тут
# ls -lt --time-style=full-iso /dev/disk/by-id/|grep usb-|grep -v sd[a-z][1-9]
lrwxrwxrwx 1 root root 9 2014-06-16 21:27:46.196232331 +0300 usb-SEMC_Mass_Storage_BX902KNNSL-0:0 -> ../../sdb
lrwxrwxrwx 1 root root 9 2014-06-16 21:27:42.412213567 +0300 usb-Kingston_DT_101_II_001D0F0CAABFF980D5A00AAD-0:0 -> ../../sdc
соль в следующем:
Несмотря на то, что флешка Kingston была вставлена в usb-порт на несколько секунд позднее чем андроид SONY, SONY XPERIA Mini автоматически переключается в режим накопителя (на что требуется время), и переключилась SONY в режим накопителя на несколько секунд позднее, чем был создан файл устройства для флешки Kingston.
Стало быть и файл устройства для SONY XPERIA Mini был создан на несколько секунд позднее:
# ls -lt --time-style=full-iso /dev/|grep sd[b-c]|grep -v sd[a-z][1-9]
brw-rw---- 1 root disk 8, 16 2014-06-16 21:27:46.196232331 +0300 sdb
brw-rw---- 1 root disk 8, 32 2014-06-16 21:27:42.412213567 +0300 sdc
Поэтому командой выше было показано последнее подключённое устройство sdb, а не sdc, на уровне времени создания файла-устройства, а не порядка вставки в порт.
А здесь
# BLKUSB=$(find /dev/disk/by-id/ -name usb-*) && [ -z "$BLKUSB" ] || \
ls -lt --time-style=full-iso $BLKUSB|grep -v sd[a-z][1-9]|head -n 1|cut -d '>' -f2|sed 's/ ..\/../\/dev/'
/dev/sdc
# ls -lt --time-style=full-iso /dev/|grep sd[b-c]|grep -v sd[a-z][1-9]
brw-rw---- 1 root disk 8, 32 2014-06-16 21:58:07.385263120 +0300 sdc
brw-rw---- 1 root disk 8, 16 2014-06-16 21:58:04.449248561 +0300 sdb
# ls -lt --time-style=full-iso /dev/disk/by-id/|grep usb-|grep -v sd[a-z][1-9]
lrwxrwxrwx 1 root root 9 2014-06-16 21:58:07.385263120 +0300 usb-Kingston_DT_101_II_001D0F0CAABFF980D5A00AAD-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 9 2014-06-16 21:58:04.449248561 +0300 usb-UFD_2.0_Silicon-Power8G_13010673022000000673-0:0 -> ../../sdb
последний подключённый usb-накопитель показан Kingston /dev/sdc, поскольку флешки подключаются быстро и без задержек.
В команде сортировки, которая используется в скрипте,
# ls -lt --time-style=full-iso /dev/sd[b-c]
brw-rw---- 1 root disk 8, 32 2014-06-16 21:58:07.385263120 +0300 /dev/sdc
brw-rw---- 1 root disk 8, 16 2014-06-16 21:58:04.449248561 +0300 /dev/sdb
новые файлы идут в выводе первыми в списке, от нового сверху, вниз списка к более старым.
Поэтому свежий легко захватить через 'head -n 1'.
И наоборот.
Добавление ключа '-r' (--reverse) позволит увидеть USB-накопитель подключённый первым:
# BLKUSB=$(find /dev/disk/by-id/ -name usb-*) && [ -z "$BLKUSB" ] || \
ls -lt --time-style=full-iso -r $BLKUSB|grep -v sd[a-z][1-9]|head -n 1|cut -d '>' -f2|sed 's/ ..\/../\/dev/'
/dev/sdb
# ls -lt --time-style=full-iso -r /dev/sd[b-c]
brw-rw---- 1 root disk 8, 16 2014-06-16 23:16:17.100518162 +0300 /dev/sdb
brw-rw---- 1 root disk 8, 32 2014-06-16 23:16:19.532530221 +0300 /dev/sdc
За гибкость утилиты
ls спасибо дядьке Столлману и Дэвиду МакКензи.