用法:install [選項(xiàng)]... [-T] 源文件 目標(biāo)文件
或:install [選項(xiàng)]... 源文件... 目錄
或:install [選項(xiàng)]... -t 目錄 源文件...
或:install [選項(xiàng)]... -d 目錄...
此install 將文件(通常僅是編譯后的文件)復(fù)制到您所選擇的目的位置。
如果您希望在GNU/Linux 操作系統(tǒng)上下載并安裝一個(gè)即時(shí)可用的軟件包,
您應(yīng)當(dāng)使用諸如yum(1) 和apt-get(1) 的軟件包管理器。
在前三種形式中,將源文件復(fù)制到目標(biāo)文件或?qū)⒍鄠€(gè)源文件復(fù)制到一個(gè)已存在的目錄
中同時(shí)設(shè)置其所有權(quán)和權(quán)限模式。在第四種形式中,創(chuàng)建給出目標(biāo)目錄中的所有組件。
長選項(xiàng)必須使用的參數(shù)對于短選項(xiàng)時(shí)也是必需使用的。
--backup[=CONTROL] 為每個(gè)已存在的文件創(chuàng)建備份
-b 類似--backup 但不接受參數(shù)
-c (忽略)
-C, --compare 比較每組源文件和目標(biāo)文件,在一些情況下不修改目標(biāo)文件
-d, --directory 將所有參數(shù)視為目錄名稱;為指定的目錄創(chuàng)建所有組件
-D 創(chuàng)建目標(biāo)目錄的所有必要的父目錄,然后將源文件復(fù)制至該目錄
-g, --group=組 自行設(shè)置所屬組,而不是進(jìn)程目前的所屬組
-m, --mode=模式 自行設(shè)置權(quán)限模式(像chmod),而不是rwxr-xr-x
-o, --owner=所有者 自行設(shè)置所有者(只適用于超級用戶)
-p, --preserve-timestamps 修改源文件的訪問/修改時(shí)間以與目標(biāo)文件保持一致
-s, --strip 拆解符號表
--strip-program=程序 指定拆解二進(jìn)制文件的程序
-S, --suffix=后綴 覆蓋常用備份文件后綴
-t, --target-directory=目錄 將源文件所有參數(shù)復(fù)制到指定目錄
-T, --no-target-directory 將目標(biāo)文件視為普通文件
-v, --verbose 創(chuàng)建目錄時(shí)顯示其名稱
--preserve-context 保持SELinux 的安全環(huán)境
-Z, --context=CONTEXT 設(shè)置文件和目錄的SELinux 安全環(huán)境
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
備份文件的后綴為"~",除非以--suffix 選項(xiàng)或是SIMPLE_BACKUP_SUFFIX
環(huán)境變量指定。版本控制的方式可通過--backup 選項(xiàng)或VERSION_CONTROL 環(huán)境
變量來選擇。以下是可用的變量值:
none, off 不進(jìn)行備份(即使使用了--backup 選項(xiàng))
numbered, t 備份文件加上數(shù)字進(jìn)行排序
existing, nil 若有數(shù)字的備份文件已經(jīng)存在則使用數(shù)字,否則使用普通方式備份
simple, never 永遠(yuǎn)使用普通方式備份
例:
代碼如下:
[root@linux ~]# install test.php ar_test #將test.php拷貝到ar_test下面
< p>[root@linux ~]# install -d hao #創(chuàng)建目錄
[root@linux ~]# install -t hao utf8 test.php #將utf8 test.php cp到hao目錄下面
linux中install命令和cp命令的區(qū)別
基本上,在Makefile里會(huì)用到install,其他地方會(huì)用cp命令。
它們完成同樣的任務(wù)——拷貝文件,它們之間的區(qū)別主要如下:
1、最重要的一點(diǎn),如果目標(biāo)文件存在,cp會(huì)先清空文件后往里寫入新文件,而install則會(huì)先刪除掉原先的文件然后寫入新文件。這是因?yàn)橥? 使用的文件中寫入內(nèi)容可能會(huì)導(dǎo)致一些問題,比如說寫入正在執(zhí)行的文件可能會(huì)失敗,比如說往已經(jīng)在持續(xù)寫入的文件句柄中寫入新文件會(huì)產(chǎn)生錯(cuò)誤的文件。而使用 install先刪除后寫入(會(huì)生成新的文件句柄)的方式去安裝就能避免這些問題了;
2、install命令會(huì)恰當(dāng)?shù)靥幚砦募?quán)限的問題。比如說,install -c會(huì)把目標(biāo)文件的權(quán)限設(shè)置為rwxr-xr-x;
3、install命令可以打印出更多更合適的debug信息,還會(huì)自動(dòng)處理SElinux上下文的問題。
代碼如下:
install - copy files and set attributes
install 在做拷貝的同時(shí),設(shè)置attributes.
因此Makefile 中盡量使用install 命令。
例如
代碼如下:
@install -d /usr/bin -p -D -m 0755 targets /usr/bin
相當(dāng)于
代碼如下:
@mkdir -p /usr/bin targets /usr/bin 755 /usr/bin/targets /usr/bin/tagets