Linux下install命令和cp命令的區別

來源:互聯網
上載者:User

基本上,在Makefile裡會用到install,其他地方會用cp命令。

它們完成同樣的任務——拷貝檔案,它們之間的區別主要如下:

1、最重要的一點,如果目標檔案存在,cp會先清空檔案後往裡寫入新檔案,而install則會先刪除掉原先的檔案然後寫入新檔案。這是因為往正在使用的檔案中寫入內容可能會導致一些問題,比如說寫入正在執行的檔案可能會失敗,比如說往已經在持續寫入的檔案控制代碼中寫入新檔案會產生錯誤的檔案。而使用install先刪除後寫入(會產生新的檔案控制代碼)的方式去安裝就能避免這些問題了;

2、install命令會恰當地處理檔案許可權的問題。比如說,install -c會把目標檔案的使用權限設定為rwxr-xr-x;

3、install命令可以列印出更多更合適的debug資訊,還會自動處理SElinux內容相關的問題。

------------------------------------分割線------------------------------------

當時在編譯LFS 6 的時候, 一直搞不懂 install 的命令 和 cp 以及和 chmod, chgrp 的區別? 

工作之後才明白一個Running 的進程不能隨便進行 cp , 經常會提示  "text busy", 營運部的前輩們給的建議是採用mv 來替代 cp , 今天看起來前輩好像不知道install 這個命令啊.

現在就簡單介紹一下 install 命令.

install copy 檔案清單且同時能夠設定檔案的屬性(包括 owner, group) , 通常用在 Makefiles 中 用來copy 程式到指定的目錄. 

常見的用法有以下3中形式: 
1:  install  -d [option]  DIRECTORY [DIRECTORY...]  支援多個. 類似 mkdir -p  支援遞迴.
 例如:  install -d a/b/c e/f  結果和 mkdir -p  a/b/c  e/f 一樣. 
2: install [option]  SOURCE DEST
 複製 SOURCE  檔案(測試不能是目錄)  到DEST file(檔案) .
 install  a/e  c  結果類似  cp  a/e  c  # 注意c必須是檔案.
 有用選項 -D
  install -D x a/b/c    # 效果類似 mkdir -p a/b  && cp  x a/b/c 
3: install [option]  SOURCE [SOURCE...] DIRECTORY
 複製  多個SOURCE 檔案到目的目錄. 
 install a/*  d  其中 d 是目錄.

有用選項
 -b :自動備份.
-m : 設定安裝檔案的許可權
-p :保留檔案的timestamps. 也就是說檔案的timestaamps 和 source 檔案一樣.  當我們想要利用安裝檔案的mtime來追蹤檔案的build時間而不是 安裝時間.
-s : Strip the symbol tables from installed binary executables.
-S : 備份檔案的尾碼.
 install  -S .bak new  old  #old 檔案自動被 mv 為 old.bak.
-v: verbose ,列印install 的檔案的詳細資料.
`-c'
    Ignored; for compatibility with old Unix versions of `install'.  #用來相容舊版的unix.

-C: (大寫)
 安裝檔案, 但是如果目標檔案和源檔案一樣( 判斷方法需要看看代碼確認) 就跳過, 這樣的好處是 能夠保持一樣檔案的mtime. 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.