Linux區(qū)分install命令和cp命令詳解
添加時(shí)間:2017-6-5 1:01:41
添加:
思海網(wǎng)絡(luò)
在Linux眾多命令中,install命令和cp命令都能拷貝文件,但在用法上有些區(qū)別,不少人在使用的時(shí)候不知如何選擇。
它們之間的區(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上下文的問題。
------------------------------------分割線------------------------------------
當(dāng)時(shí)在編譯LFS 6 的時(shí)候, 一直搞不懂 install 的命令 和 cp 以及和 chmod, chgrp 的區(qū)別?
工作之后才明白一個(gè)Running 的進(jìn)程不能隨便進(jìn)行 cp , 經(jīng)常會(huì)提示 “text busy", 運(yùn)維部的前輩們給的建議是采用mv 來替代 cp , 今天看起來前輩好像不知道install 這個(gè)命令啊。
現(xiàn)在就簡單介紹一下 install 命令。
install copy 文件列表且同時(shí)能夠設(shè)置文件的屬性(包括 owner, group) , 通常用在 Makefiles 中 用來copy 程序到指定的目錄。
常見的用法有以下3中形式:
1: install -d [option] DIRECTORY [DIRECTORY.。。] 支持多個(gè)。 類似 mkdir -p 支持遞歸。
例如: install -d a/b/c e/f 結(jié)果和 mkdir -p a/b/c e/f 一樣。
2: install [option] SOURCE DEST
復(fù)制 SOURCE 文件(測試不能是目錄) 到DEST file(文件) 。
install a/e c 結(jié)果類似 cp a/e c # 注意c必須是文件。
有用選項(xiàng) -D
install -D x a/b/c # 效果類似 mkdir -p a/b && cp x a/b/c
3: install [option] SOURCE [SOURCE.。。] DIRECTORY
復(fù)制 多個(gè)SOURCE 文件到目的目錄。
install a/* d 其中 d 是目錄。
有用選項(xiàng)
-b :自動(dòng)備份。
-m : 設(shè)置安裝文件的權(quán)限
-p :保留文件的timestamps. 也就是說文件的timestaamps 和 source 文件一樣。 當(dāng)我們想要利用安裝文件的mtime來跟蹤文件的build時(shí)間而不是 安裝時(shí)間。
-s : Strip the symbol tables from installed binary executables.
-S : 備份文件的后綴。
install -S .bak new old #old 文件自動(dòng)被 mv 為 old.bak.
-v: verbose ,打印install 的文件的詳細(xì)信息。
`-c‘
Ignored; for compatibility with old Unix versions of `install’。 #用來兼容舊版的unix.
-C: (大寫)
安裝文件, 但是如果目標(biāo)文件和源文件一樣( 判斷方法需要看看代碼確認(rèn)) 就跳過, 這樣的好處是 能夠保持一樣文件的mtime.
上面就是Linux install命令和cp命令的用法介紹了,其中最大的區(qū)別就是在復(fù)制目標(biāo)文件存在的時(shí)候,install可以先刪除再使用,以免拷貝失敗。
關(guān)鍵字:Linux、install、命令
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解