轉:http://blog.yikuyiku.com/?p=2659
基本上,在Makefile里會用到install,其他地方會用cp命令。
它們完成同樣的任務——拷貝文件,它們之間的區別主要如下:
1、最重要的一點,如果目標文件存在,cp會先清空文件后往里寫入新文件,而install則會先刪除掉原先的文件然后寫入新文件。這是因為往正在 使用的文件中寫入內容可能會導致一些問題,比如說寫入正在執行的文件可能會失敗,比如說往已經在持續寫入的文件句柄中寫入新文件會產生錯誤的文件。而使用 install先刪除后寫入(會生成新的文件句柄)的方式去安裝就能避免這些問題了;
2、install命令會恰當地處理文件權限的問題。比如說,install -c會把目標文件的權限設置為rwxr-xr-x;
3、install命令可以打印出更多更合適的debug信息,還會自動處理SElinux上下文的問題。
轉:http://blog.csdn.net/stevenliyong/article/details/4663583
install - copy files and set attributes
install 在做拷貝的同時,設置attributes.
因此Makefile 中盡量使用install 命令。
例如
@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 命令好強大啊。
另外@前綴的意思是不在控制台輸出結果。
轉載:http://www.cnblogs.com/wwwsinagogogo/archive/2011/08/15/2139124.html
【概述】
Install和cp類似,都可以將文件/目錄拷貝到指定的地點。但是,install允許你控制目標文件的屬性。install通常用於程序的makefile,使用它來將程序拷貝到目標(安裝)目錄。
【語法】
install [OPTION]... [-T] SOURCE DEST
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
install [OPTION]... -d DIRECTORY...
*如果指定了兩個文件名, `install' 將第一個文件拷貝到第二個
* 如果使用了 `--target-directory' (`-t') 選項,或者如果最后一個文件是一個目錄並且沒有使用`--no-target-directory' (`-T')選項, `install'將每一個源文件拷貝到指定的目錄,目標文件名與SOURCE文件名相同。
* 如果使用了 `--directory' (`-d') 選項, `install' 將逐級創建缺失的目標目錄
【常用選項】
-s:對待拷貝的可執行文件進行strip操作,取出文件中的符號表。(一般在做成nand rom時去除符號表,NFS時為了調試方便,一般不會使用此選項)
-d(--directory):創建制定的目錄結構(逐級創建)。如,指定安裝位置為/usr/local/aaa/bbb,/usr/loacal已存在,install會幫助我們創建aaa和bbb目錄,並把程序安裝到指定位置。
