系统相关
首页 > 系统相关> > linux – 如何编写一个bash脚本,它将获得/ dev / random的次要和主要设备号

linux – 如何编写一个bash脚本,它将获得/ dev / random的次要和主要设备号

作者:互联网

我试图在chrooted环境中运行程序,它需要/ dev / random作为资源.
手动我可以做ls -l然后用mknod c xx yy再次创建文件,但是我需要让它自动化,我不认为这些版本号从linux版本到另一个是不变的,所以这就是为什么我有以下问题:

我怎么能写一个bash脚本来提取/ dev / random的次要和主要数字并将它与mknod一起使用?我可以使用ls -l但我不知道如何提取它的子串…

ls -l / dev / random的确切返回是:

crw-rw-rw- 1 root root MINOR, MAJOR mars  30 19:15 /dev/random

我要提取的两个数字是MINOR和MAJOR.但是,如果有一种更简单的方法来创建没有ls和mknod的节点,我会很感激.

解决方法:

您可以使用stat获取主设备号和次设备号:

MINOR=`stat -c %T /dev/random`
MAJOR=`stat -c %t /dev/random`

然后,您可以创建一个设备节点:

mknod mydevice c "$MAJOR" "$MINOR"

另一种方法(不需要解析设备号)是使用tar创建一个存档,其中包含设备文件的详细信息:

cd /dev
tar cf /somewhere/devicefiles.tar random null [any other needed devices]

然后

cd /somewhere/chroot-location
tar xf /somewhere/devicefiles.tar

后一种方法的优点是它不依赖于stat的-c选项,这是一个GNU扩展.

标签:bash,linux,mknod
来源: https://codeday.me/bug/20190722/1505138.html