function::usrdev2kerndev - Linux


The usrdev2kerndev command converts a device file in the user file system to its corresponding device file in the kernel file system. It’s used to determine the actual device underlying a symbolic link in the /dev directory.


usrdev2kerndev [--cached] [--unordered] [--stats] [--version] [--explain] [--human-readable] [--show-defaults] [--verbose] [--dry-run] [device...]


| Option | Description |
| --cached | Use cached information (if available) to speed up the lookup. |
| --unordered | Print devices in arbitrary order instead of alphabetical order. |
| --stats | Print statistics about the used filesystems and devices. |
| --version | Display the version of the program. |
| --explain | Explain the output in a more verbose manner. |
| --human-readable | Use human-readable format for sizes and other values. |
| --show-defaults | Show default values for all options. |
| --verbose | Increase verbosity level, showing more information. |
| --dry-run | Perform a simulation of the command without making any changes. |


Convert /dev/sda (user device) to its kernel device:

usrdev2kerndev /dev/sda

Convert all devices in the /dev/disk/by-id directory:

usrdev2kerndev --unordered /dev/disk/by-id/*

Common Issues

  • Device not found: Ensure that the provided device exists.
  • Parse error: If the kernel or user device file has an invalid format, an error will be thrown.
  • No permission: The command requires root privileges, otherwise a permission error will occur.


usrdev2kerndev can be integrated into scripts to automate device management tasks:


# Convert a list of user devices to kernel devices
user_devices=(/dev/sda /dev/sdb /dev/sdc)
kernel_devices=$(for i in "${user_devices[@]}"; do usrdev2kerndev "$i"; done)

# Perform an action based on the kernel devices
echo "Kernel devices: $kernel_devices"

Related Commands

  • lsblk – List block devices.
  • mount – Mount a file system.
  • udevadm – Enumerate and manage devices.