前言
install和cp类似,都可以将文件/目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。install通常用于程序的makefile(在RPM的spec里面也经常用到),使用它来将程序拷贝到目标(安装)目录。
install主要用法如下:
install [OPTION]… SOURCE… DIRECTORY
此时,DIRECTORY必须存在,否则被当成新的文件
install [OPTION]… -t DIRECTORY SOURCE…
install [OPTION]… -d DIRECTORY…
如果目录不存在则创建
-b:为每个已存在的目的地文件进行备份;
-D:创建目的地前的所有目录,然后将来源复制到目的地
-g:自行设置所属的组;
-m:自行设置权限,而不是默认的rwxr-xr-x
-o:自行设置所有者
-p:以来源文件的修改时间作为相应的目的地的文件属性
例如:
@install -d /usr/bin @install -p -D -m 0755 targets /usr/bin 相当于 @mkdir -p /usr/bin @cp targets /usr/bin @chmod 755 /usr/bin/targets @touch /usr/bin/tagets <---- 更新文件时间戳 <----@前缀的意思是不在控制台输出结果。
install和cp完成同样的任务–拷贝文件,它们之间的区别主要如下:
1、最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。这是因为往正在使用的文件中写入内容可能会导致一些问题,比如说写入正在执行的文件可能会失败,再比如说往已经在持续写入的文件句柄中写入新文件会产生错误的文件。而使用install先删除后写入(会生成新的文件句柄)的方式去安装就能避免这些问题了;
2、install命令会恰当地处理文件权限的问题。比如说,install -c会把目标文件的权限设置为rwxr-xr-x;
3、install命令可以打印出更多更合适的debug信息,还会自动处理SElinux上下文的问题。
总结
以上就是这篇文章的全部呢日哦功能了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
更新日志
- 坣娜.1998-别恋【非常喜】【WAV+CUE】
- 《草原经典 最炫草原风 2CD》[WAV/分轨][980MB]
- 《不烧不选 经典国语极品珍藏》[WAV/分轨][500MB]
- 《绝对主打 流行原创金曲 2CD》[WAV分轨][1.1GB]
- 《赛博朋克2077》更新上线:支持AMD FSR3
- 《塞尔达传说:智慧的再现》提前半个月偷跑,引发玩家担忧
- 战锤40K星际战士2全职业介绍|全职业技能效果一览
- 陈百强《2006世纪10星·永恒篇[环球]》[WAV整轨]
- 【新世纪钢琴】VA-GoldenOctober(Piano)(金秋十月钢琴篇)【FLAC】
- 青稞荞麦《破茧》新生代组合[WAV+CUE]
- 因系统升级后出现BUG 《FF16》PS5完全版宣布延期
- 《黑神话:悟空》周伯通!大佬用左右手分别挑战两只虎先锋
- 《黑神话:悟空》攻击动作致敬《大话西游》:这也太帅了!
- 《星舰铳犬太阳系物语》游戏背景介绍
- 《战锤40K星际战士2》终极版有后续DLC说明