linux-26 文件管理(四)install

说一个命令,叫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包制作的时候,会经常用到这个命令,况且对我们而言,这也是另外一种途径用于实现文件复制的一种用法。

相关推荐
只做开心事1 小时前
Linux之信号量
linux
Xi_er_3 小时前
密钥管理系统在数据安全解决方案中的重要性
运维·数据仓库·物联网·web安全·前端框架·智慧城市·安全架构
练小杰3 小时前
我在广州学 Mysql 系列——有关数据表的插入、更新与删除相关练习
android·运维·数据库·经验分享·学习·mysql·adb
hqxnb6664 小时前
深入理解 Linux 管道:创建与应用详解(匿名管道&&进程池)
linux·运维·服务器
Run Out Of Brain5 小时前
使用Oracle的Debian软件包在Linux上安装MySQL
linux·oracle·debian
等一场春雨5 小时前
Windows 11 上通过 WSL (Windows Subsystem for Linux) 安装 MySQL 8
linux·windows·mysql
加勒比之杰克5 小时前
【数据库初阶】MySQL数据类型
linux·数据库·mysql·数据类型·varchar
vvw&5 小时前
如何在 Ubuntu 24.04 上安装 Drupal CMS 11 并配置 Nginx, MariaDB 和 SSL 教程
linux·运维·服务器·nginx·ubuntu·ssl·mariadb
未完成的歌~5 小时前
Kali 离线安装 ipmitool 笔记
linux·运维·笔记
会飞的土拨鼠呀5 小时前
docker system df命令
运维·docker·容器