uClinux一般都会建立一个ROMFS文件系统,而把其它文件向该文件系统添加一般都通过$(ROMFSINST)命令,而ROMFSINST变量值就是romfs-inst.sh(这文件一般在和linux-2.6.x同级的tools目录下),执行$(ROMFSINST)就是执行romfs-inst.sh。
用法:
romfs-inst.sh [options] [src] dst
-v:输出执行时过程时信息 -e env-var:如果env-var中含有y或Y字符,就执行,否则不做任何动作 -o option:功能和-e很像,只是它不用变量而是用字符串。如果当中含有y或Y字符,就执行,否则不做任何动作 -p perms:设置目标文件的权限 -a text:把text内容添加到目标文件 -A patten:只在目标文件不存在patten,text内容才添加目标文件 -l link:不是复制文件,而是执行硬链接 -s sym-link:不是复制文件,而是执行符号链接
如果参数没给出src,那romfs-inst.sh用basename函数从dst中得到基本文件名,这基本文件名加上当前目录成为src的全文件名。 多个-e和-o选项会被执行逻辑与运算,如果不想执行逻辑与而是执行逻辑或,在条件中使用1或更多的y/n/字符的单个的-e/-o 如果src是一个目录,那当中的所有文件都会被复制过去(除了CVS目录)
注:汉字部分是在源码上添加的注释。
uClinux一般都会建立一个ROMFS文件系统,而把其它文件向该文件系统添加一般都通过$(ROMFSINST)命令,而ROMFSINST变量值就是romfs-inst.sh(这文件一般在和linux-2.6.x同级的tools目录下),执行$(ROMFSINST)就是执行romfs-inst.sh。
用法:
romfs-inst.sh [options] [src] dst
-v:输出执行时过程时信息 -e env-var:如果env-var中含有y或Y字符,就执行,否则不做任何动作 -o option:功能和-e很像,只是它不用变量而是用字符串。如果当中含有y或Y字符,就执行,否则不做任何动作 -p perms:设置目标文件的权限 -a text:把text内容添加到目标文件 -A patten:只在目标文件不存在patten,text内容才添加目标文件 -l link:不是复制文件,而是执行硬链接 -s sym-link:不是复制文件,而是执行符号链接
如果参数没给出src,那romfs-inst.sh用basename函数从dst中得到基本文件名,这基本文件名加上当前目录成为src的全文件名。 多个-e和-o选项会被执行逻辑与运算,如果不想执行逻辑与而是执行逻辑或,在条件中使用1或更多的y/n/字符的单个的-e/-o 如果src是一个目录,那当中的所有文件都会被复制过去(除了CVS目录)
注:汉字部分是在源码上添加的注释。
复制代码
示例
/Makefile ROMFSINST= romfs-inst.sh 进入此处时当前目录是/vendors/Qpixel/QL201 ROMFSDIR=/romfs
$(ROMFSINST) -s ../var/tmp/log /dev/log 建立符号链接,执行linux命令,ln -sf /vendors/Qpixel/var/tmp/log /romfs/dev/log。
$(ROMFSINST) -s ./bin /sbin 建立符号链接,执行linux命令,ln -sf /vendors/Qpixel/QL201/bin /romfs/sbin。
$(ROMFSINST) /etc/profile,(/vendors/Qpixel/QL201/etc/profile是目录) 把当前目录下的/etc/profile下除CVS目录的所有文件复制到ROMFS文件系统上。 执行CopyDIr /vendors/Qpixel/QL201/profile /romfs/etc/profile,具体到命令,find . -print | grep -E -v '/CVS' | cpio -pdumL /romfs/etc/profile
$(ROMFSINST) /etc/rc,(/vendors/Qpixel/QL201/etc/rc是文件) 删除ROMFS文件系统上的rc文件,把位于当前目录下的rc复到到文件系统上。 rm /romfs/etc/rc cp /vendors/Qpixel/QL201/rc /romfs/etc/rc | |