How can a usb be detected but not show up anywhere?

sudo lsusb is the first step. looking in /mnt or /media, or /anywherelse implies the hardware has been mounted. The hardware maybe plugged in but not mounted.

If you see the device listed, then you can look for the /dev/ assignment in dmesg here is dmesg output of when i just pluged a memory stick in my computer:

[10527.883515] sd 6:0:0:3: [sde] 126912 512-byte logical blocks: (64.9 MB/61.9 MiB)
[10527.884558] sd 6:0:0:3: [sde] Write Protect is on
[10527.884567] sd 6:0:0:3: [sde] Mode Sense: 03 00 80 00
[10527.885747] sd 6:0:0:3: [sde] No Caching mode page present
[10527.885755] sd 6:0:0:3: [sde] Assuming drive cache: write through
[10527.889253] sd 6:0:0:3: [sde] No Caching mode page present
[10527.889261] sd 6:0:0:3: [sde] Assuming drive cache: write through
[10527.892404]  sde: sde1

so then i would try mounting that filesystem at /dev/sde1 sudo mount /dev/sde1 /home/user/Desktop/foo where you mount your hardware, is somewhat trivial. /mnt /media /whocares it doesnt matter. (ignoring FHS, and assuming you wont try mounting in a place like root)

sudo fdisk -l will tell you the filesystem type and /dev/ assignment. fdisk -l however will not tell you anything, (strangely, it doesn't return "permission denied")

why use dmesg instead of fdisk? because using fdisk assumes your hardware is working. If your hardware fails, fdisk wont tell you. but dmesg will.