linux中install命令和cp命令的使用與區(qū)別
前言
install和cp類(lèi)似,都可以將文件/目錄拷貝到指定的地點(diǎn)。但是,install允許你控制目標(biāo)文件的屬性。install通常用于程序的makefile(在RPM的spec里面也經(jīng)常用到),使用它來(lái)將程序拷貝到目標(biāo)(安裝)目錄。
install主要用法如下:
install [OPTION]… SOURCE… DIRECTORY
此時(shí),DIRECTORY必須存在,否則被當(dāng)成新的文件
install [OPTION]… -t DIRECTORY SOURCE…
install [OPTION]… -d DIRECTORY…
如果目錄不存在則創(chuàng)建
-b:為每個(gè)已存在的目的地文件進(jìn)行備份;
-D:創(chuàng)建目的地前的所有目錄,然后將來(lái)源復(fù)制到目的地
-g:自行設(shè)置所屬的組;
-m:自行設(shè)置權(quán)限,而不是默認(rèn)的rwxr-xr-x
-o:自行設(shè)置所有者
-p:以來(lái)源文件的修改時(shí)間作為相應(yīng)的目的地的文件屬性
例如:
@install -d /usr/bin @install -p -D -m 0755 targets /usr/bin 相當(dāng)于 @mkdir -p /usr/bin @cp targets /usr/bin @chmod 755 /usr/bin/targets @touch /usr/bin/tagets <---- 更新文件時(shí)間戳 <----@前綴的意思是不在控制臺(tái)輸出結(jié)果。
install和cp完成同樣的任務(wù)–拷貝文件,它們之間的區(qū)別主要如下:
1、最重要的一點(diǎn),如果目標(biāo)文件存在,cp會(huì)先清空文件后往里寫(xiě)入新文件,而install則會(huì)先刪除掉原先的文件然后寫(xiě)入新文件。這是因?yàn)橥谑褂玫奈募袑?xiě)入內(nèi)容可能會(huì)導(dǎo)致一些問(wèn)題,比如說(shuō)寫(xiě)入正在執(zhí)行的文件可能會(huì)失敗,再比如說(shuō)往已經(jīng)在持續(xù)寫(xiě)入的文件句柄中寫(xiě)入新文件會(huì)產(chǎn)生錯(cuò)誤的文件。而使用install先刪除后寫(xiě)入(會(huì)生成新的文件句柄)的方式去安裝就能避免這些問(wèn)題了;
2、install命令會(huì)恰當(dāng)?shù)靥幚砦募?quán)限的問(wèn)題。比如說(shuō),install -c會(huì)把目標(biāo)文件的權(quán)限設(shè)置為rwxr-xr-x;
3、install命令可以打印出更多更合適的debug信息,還會(huì)自動(dòng)處理SElinux上下文的問(wèn)題。
總結(jié)
以上就是這篇文章的全部呢日哦功能了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
Linux服務(wù)器進(jìn)程退出了,但是顯存占用問(wèn)題的解決
這篇文章主要介紹了Linux服務(wù)器進(jìn)程退出了,但是顯存占用問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09修改.htaccess實(shí)現(xiàn)301域名重定向示例分享
這篇文章主要介紹了修改.htaccess實(shí)現(xiàn)301域名重定向示例,需要的朋友可以參考下2014-03-03linux新文件權(quán)限設(shè)置之umask的深入理解
這篇文章主要給大家介紹了關(guān)于linux新文件權(quán)限設(shè)置之umask的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03windows下安裝PEAR php5.3.1下解決出錯(cuò)的方法
在配置好了Apache2.2.14和PHP5.3.1后,最近想安裝PEAR(PHP Extension and Application Repository),但是在執(zhí)行批處理文件go-pear.bat的時(shí)候出現(xiàn)了錯(cuò)誤2010-02-02阿里云Centos6.X發(fā)郵件遇到的各種問(wèn)題
這兩天用PHPMailer寫(xiě)了個(gè)發(fā)送郵件功能,在本地測(cè)試可以發(fā)送郵件,但是放到阿里云服務(wù)器缺發(fā)送不了,經(jīng)過(guò)查詢(xún),最終解決了,把方法分享給大家2018-09-09在Debian系的Linux中編譯并安裝ixgbe驅(qū)動(dòng)的教程
這篇文章主要介紹了在Linux中編譯并安裝ixgbe驅(qū)動(dòng)的教程,采用bash shell、適用于Debian、Ubuntu等各種基于Debian的Linux系統(tǒng),需要的朋友可以參考下2015-03-03