cp和軟ln命令簡述
cp
備注:
1. 該命令可以自動判斷你所復制的是文件還是目錄
2. 當源是一個文件,目標(目的地)不存在時,則在目的地新建一個文件,并將源文件的內容填充進新的文件中(在復制之前/app目錄下并沒有mima文件;wc –l的作用是查看指定文件的行數,此處查看兩個文件的行數來大致判斷文件是否一致。)
3. 當源是一個文件,目標(目的地)存在且是一個文件時,會覆蓋目的文件的內容(由于root用戶下的別名中定義了cp=cp –i,所以在不加參數的時候會提示是否覆蓋目的文件,輸入’y’即可確認覆蓋,完成復制,但是也正因如此,要注意數據丟失的風險)
4. 當源是一個文件,目標(目的地)存在但是一個目錄時,不可能實現,文件無法覆蓋文件。
5. 當源是多個文件,目的地不存在時提示錯誤,目的地不能不存在。
6. 當源是多個文件,目的地存在,但是一個文件時,提示錯誤。
7. 當源是多個文件,目的地存在且是一個目錄時,如果目錄中存在與源文件同名的文件則覆蓋;如果不存在與源文件同名的文件則新建并填充源文件中的內容;如果目的地目錄中存在與源文件同名的目錄,則不復制該源文件。
8. 當源是個目錄,目的地不存在的時候,新建一個同名的目錄,然后填充新內容。
當源是個目錄,目的地存在且為目錄時,在目的地新建與源目錄同名的內容并將源文件中的內容復制至新目錄中。
9.當源為目錄時,需使用 –r選項。
參數
(1) -i 覆蓋前提示
備注:當系統登錄的用戶為root用戶時,由于在~/.bashrc文件中已經定義了別名,所以root用戶使用cp時默認情況下會出現提示信息。別名信息如下圖所示:
(2) -n 不覆蓋(不覆蓋沒有寫權限的文件)
(3) -r -R 遞歸(通用大小寫)
(4) -d 復制軟鏈接屬性(不加-d的時候會根據路徑找到源文件并復制其數據)
當復制鏈接時,系統會默認復制鏈接的原文件的內容,而不是僅僅的一個鏈接,相當于新建了一個文件,其內容與源文件的內容相同,但是改變該文件的內容并不會影響源文件以及鏈接文件的內容,當加上-d選項時才會復制鏈接本身。
(5)-p =
–perserv=mode,owner,timestamp(復制這三個屬性)
(6)-a 包含-dr
–perserv=all(包含-d –r –p 的作用)
(7)-f 當覆蓋時,如目的文件缺少寫權限時,強制刪除目的文件,并新建再填充內容(刪除并新建,之后的目的文件的權限以及所屬人所屬組都會改變)。當有-n時,無效
Df –i可以查看inode的使用數量以及剩余數量
軟鏈接
命令:ln -s
(注意路徑)
備注:
1.當原文件內容發生變化時,鏈接文件的內容也會和原文件一樣發生同樣的改變,同樣的,如果改變鏈接文件中內容也相當于改變原文件中的內容,原文件也會相應的發生改變,如下圖中的命令行所示。
2.當復制鏈接時,系統會默認復制鏈接的原文件的內容,而不是僅僅的一個鏈接,相當于新建了一個文件,其內容與源文件的內容相同,但是改變該文件的內容并不會影響源文件以及鏈接文件的內容,當加上-d選項時才會復制鏈接本身,示例如下圖所示:
3.當將原文件刪除或者修改原文件的路徑時,鏈接文件會失效,由此可見,軟鏈接記錄的僅僅是一個原文件的路徑。當按照記錄的路徑找不到有效文件時,鏈接文件同樣失效。如果重新創建一個和原來的文件相同名字的文件,則鏈接文件繼續有效,但此時鏈接文件中的內容已經不再是原來第一個原文件的內容,而是與現在重建的文件的內容保持一致。示例如下圖:
4.當使用相對路徑創建鏈接時,需要站在鏈接的角度出發,從鏈接的當前目錄出發,一步步找到被鏈接的目錄。示例如下圖所示:
5.當創建新鏈接時會產生新的inode號
原創文章,作者:poetic snow,如若轉載,請注明出處:http://www.www58058.com/85024