Linux复制文件的一个陷阱


今天在Linux下写shell时碰到一个奇怪的问题:执行shell时编译不了某个模块,手工进行编译却可以。查找很久,google了N遍,不得要领,正要发狂的时候,突然发现有一个cp的命令好像有问题,命令是: cp ./aaa.ko  /lib/modules/misc,马上转到/lib/modules目录,结果发现misc是一个文件!

哦,凶手就是它!由于/lib/modules目录下原先没有misc目录,所以把aaa.ko改名为misc并复制

到/lib/modules。避免这个问题的建议:在复制之前先判断目录是否存在,不存在的话就创建一个。

shell修改为下面的就可以正确执行了:

...

if ! ls /lib/modules/misc/

then

    mkdir /lib/modules/misc/

fi

if cp ./aaa.ko  /lib/modules/misc/

then

    echo "copy aaa.ko succeed"

else

    echo "copy aaa.ko failed!"

    exit 1

fi

(作者:myth)

相关内容