cp 命令有坑

 

 

cp 是個很經常使用的命令,安全

基本語法爲  cp -v  a   b  把文件a 複製爲文件b(-v爲顯示作了什麼,這是很是安全的作法,建議新手添加此參數)spa

 

參數說明:權限

-a:此選項一般在複製目錄時使用,它保留連接、文件屬性,並複製目錄下的全部內容。其做用等於-dR  或者 --preserve=all語法

-d:複製時保留連接。這裏所說的連接至關於Windows系統中的快捷方式。新手

-f:覆蓋已經存在的目標文件而不給出提示。文件

-i:與-f選項相反,在覆蓋目標文件以前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。(通常狀況下系統別名已自動添加此參數)時間

-p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。生成

-r:若給出的源文件是一個目錄文件,此時將複製該目錄下全部的子目錄和文件。參數

-l:不復制文件,而是生成 硬連接系統

-s :不復制文件,而是生成 軟連接

-v: 顯示cp指令作了什麼

 

場景:cp  -v  a   b   把文件a拷貝爲文件b,二者類似而不相同

坑1:   b爲已存在目錄時, a會被複制到 目錄b下(新手會出現的)

  正確指令:

    想複製文件自己時: cp -T a b   (b與a不是相同屬性時會報錯並且複製不了)

    想複製到目標目錄下時: cp  a  b/     (b爲非目錄時會報錯)

 

坑2: a 爲軟鏈接的狀況下, 複製後的文件會是a所鏈接文件的拷貝

 

坑3: 基於坑2, cp -r 時,  複製後的文件也會是軟鏈接,指向目錄也會相同(不過基本上都是失效)

   正確指令:

    想複製結果也是軟鏈接時: cp   -sr   a   b    或    cp   -s  a   b 

    想複製結果爲軟鏈接的目標時:cp  -Lr    a   b   或    cp   -L   a   b 

      

坑4:cp -l  千萬不要用這個參數,由於這個是硬鏈接!!!

相關文章
相關標籤/搜索