说一个命令,叫install,man install,install是什么意思?安装,install表示安装的意思,那你猜install是用来干什么的?猜一猜干什么的?安装软件,安装第三方软件,错了,install到底干什么呢?如下图,
install - copy files and set attributes,复制一个文件,而且还可以给它指定属性的,当然指定属性,我们现在还没讲到属性,所以我们就来看它怎么复制文件的,install也可以用来实现复制文件,怎么用呢?
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
源一大堆,目标只能是一个目录,是不是这样子?目标它没指定是非得是目录,但只要源是多个目标,目标就一定得是目录,所以它跟cp用法是一样的,同时它还可以使用-d,指定一个目录,这是什么意思呢?看-d,
-d, --directory
treat all arguments as directory names; create all components of the specified directories,
将所有的这里给你的路径当做目录来对待,而且可以使用多个,什么意思呢?演示一下例子就明白了,install -d /tmp/{install.1,install.2},
这是干什么的?在/tmp下创建了两个目录,叫install.1和install.2,所以也可以用来创建目录,加使用-d选项即可。所以它既可以创建目录,又可以创建文件了,-d选项指定directory,还可以取多个,表示用于创建目录。install src dest,这个是用来干什么的呢?一个源,一个目标,复制文件,install /etc/passwd /var/tmp/install.file1,如下图,
但是它是有颜色的,那意味着什么呢?复制过去之后有没有执行权限?这是install的一个特性,那原来有没有执行权限呢?如下图,
原来没有执行权限,复制过去有执行权限,这是不甚妥当的,那因此,我们可以给它指定权限的,如下图,
set permission mode (as in chmod), instead of rwxr-xr-x,我们可以使用-m选项指定复制过去之后,权限是什么?如果不指定,默认就是rwxr-xr-x。同时install跟cp一样,它还有另外一个用法,它也可以使用跟mv一样的一个用法,install -t指定目标,然后指定源,还可以有多个,install -t directory src....,把这些所有的源都给它附到这样目标下,把多个文件附到同一个目录里边去,也是可以的,所以这个源既可以是文件,甚至还可以是目录,有时候,一般来讲install通常只是install文件,install目录的话,它使用-d,那是创建一个新的空目录,那install能不能复制目录呢?来看看,file /etc/rc.d,install /etc/rc.d/ /var/tmp,如下图,
跟cp是不是一样的?cp /etc/rc.d/ /var/tmp,如果不指定-r选项,是不允许复制目录的,除非使用选项,那install支不支持选项呢?没有,没有选型支持install目录的,所以install是install文件的,这是我们的install命令,将来我们RPM包制作的时候,会经常用到这个命令,况且对我们而言,这也是另外一种途径用于实现文件复制的一种用法。