前言
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上下文的問題。
總結
以上就是這篇文章的全部呢日哦功能了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答