在Linux眾多命令中,install命令和cp命令都能拷貝文件,但在用法上有些區(qū)別,不少人在使用的時候不知如何選擇,下面小編就教你如何區(qū)分install命令和cp命令。一起去看看吧!
它們之間的區(qū)別主要如下:
1、最重要的一點,如果目標(biāo)文件存在,cp會先清空文件后往里寫入新文件,而install則會先刪除掉原先的文件然后寫入新文件。這是因為往正在使用的文件中寫入內(nèi)容可能會導(dǎo)致一些問題,比如說寫入正在執(zhí)行的文件可能會失敗,比如說往已經(jīng)在持續(xù)寫入的文件句柄中寫入新文件會產(chǎn)生錯誤的文件。而使用install先刪除后寫入(會生成新的文件句柄)的方式去安裝就能避免這些問題了;
2、install命令會恰當(dāng)?shù)靥幚砦募?quán)限的問題。比如說,install -c會把目標(biāo)文件的權(quán)限設(shè)置為rwxr-xr-x;
3、install命令可以打印出更多更合適的debug信息,還會自動處理SElinux上下文的問題。
------------------------------------分割線------------------------------------
當(dāng)時在編譯LFS 6 的時候, 一直搞不懂 install 的命令 和 cp 以及和 chmod, chgrp 的區(qū)別?
工作之后才明白一個Running 的進程不能隨便進行 cp , 經(jīng)常會提示 ;text busy", 運維部的前輩們給的建議是采用mv 來替代 cp , 今天看起來前輩好像不知道install 這個命令啊。
現(xiàn)在就簡單介紹一下 install 命令。
install copy 文件列表且同時能夠設(shè)置文件的屬性(包括 owner, group) , 通常用在 Makefiles 中 用來copy 程序到指定的目錄。
常見的用法有以下3中形式:
1: install -d [option] DIRECTORY [DIRECTORY.。。] 支持多個。 類似 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必須是文件。
有用選項 -D
install -D x a/b/c # 效果類似 mkdir -p a/b && cp x a/b/c
3: install [option] SOURCE [SOURCE.。。] DIRECTORY
復(fù)制 多個SOURCE 文件到目的目錄。
install a/* d 其中 d 是目錄。
有用選項
-b :自動備份。
-m : 設(shè)置安裝文件的權(quán)限
-p :保留文件的timestamps. 也就是說文件的timestaamps 和 source 文件一樣。 當(dāng)我們想要利用安裝文件的mtime來跟蹤文件的build時間而不是 安裝時間。
-s : Strip the symbol tables from installed binary executables.
-S : 備份文件的后綴。
install -S .bak new old #old 文件自動被 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)文件存在的時候,install可以先刪除再使用,以免拷貝失敗。希望此文檔可以幫助到大家!
WindowsSubsystem for Linux(WSL)2對Windows10版本1903和1909的支持 根據(jù)客戶......
閱讀微軟已經(jīng)向開發(fā)通道中的Windows Insiders宣布了Windows 10 Insider Prev......
閱讀bull; Wine最近收到了對6.0版的更新。 bull; 此更新改進了使用Wine的......
閱讀有趣的是,微軟正在努力使Linux在Windows10下運行。我們都熟悉W......
閱讀適用于 Linux 的 Windows 子系統(tǒng)既是一種啟示,也是一場革命?,F(xiàn)在......
閱讀適用于 Linux 5.16 的新 Zstd 已準(zhǔn)備就緒,性能提升高達 35% 最近,為 Linux 5.16 內(nèi)核準(zhǔn)備的新 Zstd 已提交給linux-next 合并,以便在接下來的幾周內(nèi)進行更廣泛的測試。...
次閱讀
最近一些朋友問小編在Linux下如何確定網(wǎng)卡所使用驅(qū)動程序?今天小編要為大家?guī)淼氖窃贚inux下確定網(wǎng)卡所使用驅(qū)動程序的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
今天小編為大家?guī)淼氖?linux命令行下進入帶空格的文件夾的方法。希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
Linux Mint 是較流行的 Linux發(fā)行版之一,它發(fā)布了 20.2 版,綽號為Uma。它帶有新功能、升級的內(nèi)部結(jié)構(gòu)和其他更改。今天,我們將仔細(xì)研究新功能。 Mint 20....
次閱讀
最近一些朋友問小編Linux如何修改RPM的安裝目錄?今天小編為大家?guī)淼氖荓inux修改RPM的安裝目錄的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
最近有些朋友問小編Linux系統(tǒng)下掛接ntfs盤時總提示module fuse not found如何解決?今天小編將為大家?guī)淼氖荓inux系統(tǒng)下掛接ntfs盤時總提示module fuse not found的解決方法,有需要的朋友一起去看...
次閱讀
今天小編要為大家分享的是Linux下安裝vagrant過程遇到的問題解析,希望可以幫助到大家,有需要的朋友一起去看看吧...
次閱讀
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現(xiàn),是 Linux上最杰出的新安全子系統(tǒng)。今天小編要為大家分享的是SELinux基本概念詳解,希望對大家會有幫助,有...
次閱讀
今天小編為大家?guī)淼氖荓inux basename命令的使用詳解,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
bull; Wine最近收到了對6.0版的更新。 bull; 此更新改進了使用Wine的Linux系統(tǒng)上的Windows應(yīng)用程序。 bull; Wine可用于在非本機系統(tǒng)上運行Windows應(yīng)用程序和...
次閱讀
最近一些朋友問小編Linux怎么去除fstab文件只讀屬性?今天小編為大家分享的是Linux去除fstab文件只讀屬性的方法,有需要的朋友可以參考下...
次閱讀
今天小編為大家?guī)淼氖菑腣im中訪問shell或者運行外部命令的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀
這篇文章主要介紹了Linux批量清空當(dāng)前目錄中的日志文件,需要的朋友可以參考下...
次閱讀
在實際使用過程中,若一個目錄下文件或文件夾太多,在執(zhí)行“*” 命令時 會提示Argument list too long,如rm -rf /tmp/*命令下...
次閱讀
今天小編為大家?guī)淼氖荓inux下設(shè)置權(quán)限讓用戶只刪除自己的文件的方法,希望對大家會有幫助,有需要的朋友一起去看看吧...
次閱讀