linux中install命令和cp命令的使用與區(qū)別
前言
install和cp類似,都可以將文件/目錄拷貝到指定的地點(diǎn)。但是,install允許你控制目標(biāo)文件的屬性。install通常用于程序的makefile(在RPM的spec里面也經(jīng)常用到),使用它來將程序拷貝到目標(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)建目的地前的所有目錄,然后將來源復(fù)制到目的地
-g:自行設(shè)置所屬的組;
-m:自行設(shè)置權(quán)限,而不是默認(rèn)的rwxr-xr-x
-o:自行設(shè)置所有者
-p:以來源文件的修改時(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í)間戳 <----@前綴的意思是不在控制臺輸出結(jié)果。
install和cp完成同樣的任務(wù)–拷貝文件,它們之間的區(qū)別主要如下:
1、最重要的一點(diǎn),如果目標(biāo)文件存在,cp會先清空文件后往里寫入新文件,而install則會先刪除掉原先的文件然后寫入新文件。這是因?yàn)橥谑褂玫奈募袑懭雰?nèi)容可能會導(dǎo)致一些問題,比如說寫入正在執(zhí)行的文件可能會失敗,再比如說往已經(jīng)在持續(xù)寫入的文件句柄中寫入新文件會產(chǎn)生錯(cuò)誤的文件。而使用install先刪除后寫入(會生成新的文件句柄)的方式去安裝就能避免這些問題了;
2、install命令會恰當(dāng)?shù)靥幚砦募?quán)限的問題。比如說,install -c會把目標(biāo)文件的權(quán)限設(shè)置為rwxr-xr-x;
3、install命令可以打印出更多更合適的debug信息,還會自動(dòng)處理SElinux上下文的問題。
總結(jié)
以上就是這篇文章的全部呢日哦功能了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Linux服務(wù)器進(jìn)程退出了,但是顯存占用問題的解決
這篇文章主要介紹了Linux服務(wù)器進(jìn)程退出了,但是顯存占用問題的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(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)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(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在Debian系的Linux中編譯并安裝ixgbe驅(qū)動(dòng)的教程
這篇文章主要介紹了在Linux中編譯并安裝ixgbe驅(qū)動(dòng)的教程,采用bash shell、適用于Debian、Ubuntu等各種基于Debian的Linux系統(tǒng),需要的朋友可以參考下2015-03-03