Linux如何使用命令行高效地復制文件到指定目錄

2021-02-06    分類: 網(wǎng)站建設(shè)

1. 前言

本文主要講解Linux系統(tǒng)如何使用命令行工具把文件復制到另一個文件夾或者目錄。

linux復制文件到另一個文件夾

2. cp命令的選項和功能

copy命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的copy命令一樣,功能十分強大。

語法: cp [選項] 源文件或目錄 目標文件或目錄

說明:該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。

該命令的各選項含義如下:

- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpR選項的組合。

- d 拷貝時保留鏈接。

- f 刪除已經(jīng)存在的目標文件而不提示。

- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認?;卮饄時目標文件將被覆蓋,是交互式拷貝。

- p 此時cp除復制源文件的內(nèi)容外,還將把其修改時間和訪問權(quán)限也復制到新文件中。

- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。

- l 不作拷貝,只是鏈接文件。

案例1:

復制指定目錄下的全部文件到另一個目錄中

文件及目錄的復制是經(jīng)常要用到的。linux下進行復制的命令為cp。

假設(shè)復制源目錄 為 dir1 ,目標目錄為dir2。怎樣才能將dir1下所有文件復制到dir2下了

如果dir2目錄不存在,則可以直接使用

[root@zcwyou ~]# cp -r dir1 dir2

即可。

如果dir2目錄已存在,則需要使用

[root@zcwyou ~]# cp -r dir1/. dir2

如果這時使用cp -r dir1 dir2,則也會將dir1目錄復制到dir2中,明顯不符合要求。

ps:dir1、dir2改成對應的目錄路徑即可。

案例2:

復制指定文件到指定文件夾

首先建立一個用于測試的目錄,用'tree'命令查看

可見,目錄中主要包含用于測試的.txt文件和用于充當炮灰的。tes文件

目標是保持當前的目錄結(jié)構(gòu),只把txt文件復制出來

本文將會以兩種情況作案例說明。

比如要把A文件夾復制到B文件夾內(nèi)。比如A內(nèi)的文件是:

- A/
 .hi.txt
 a1.txt
 shadow.json
 - dir1/
 dir1.txt

即A目錄有 .hi.txt, a1.txt,shadow.json三個文件及一個子目錄dir1,dir1里含有一個文件dir1.txt。

3. 案例1:把`A`文件夾內(nèi)的所有文件復制到`B`文件夾內(nèi)

linux復制文件到另一個目錄

我們的目標:復制操作后B文件夾的內(nèi)容和原來A文件夾一樣:

- B/
 .hi.txt
 a1.txt
 shadow.json
 - dir1/
 dir1.txt

4. 案例2:把`A`文件夾本身復制到`B`文件夾內(nèi)

操作目標:復制完成后,B文件夾的要包含原來的A文件夾:

- B/
 - A/
 .hi.txt
 a1.txt
 shadow.json
 - dir1/
 dir1.txt

5. 復制文件操作過程演示

第一種案例的命令,也就是把文件夾A中的所有內(nèi)容復制到B文件夾中,即B與A的內(nèi)容一樣。

[root@zcwyou ~]# cp -a A/. B

第二種案例的命令,也就是把文件夾A中的所有內(nèi)容復制成B文件夾中,即B包含A的所有內(nèi)容。

[root@zcwyou ~]# cp -a A B

需要解釋的點:

  • -a是一個符合參數(shù),代表-pPR,可以簡單這樣理解:“支持所有子文件并且保留文件屬性”,推薦加上這個選項。
  • 上面兩者的卻別就是A后加了個/.,如果不加/.,A本身作為一個完整的文件夾被復制到了目標文件夾內(nèi)。如果加了/.,則代表A文件夾內(nèi)的所有文件被復制到目標文件夾內(nèi)。注意這種/.是cp命令本身專有的代表所有文件的方式,如果你使用A/*,cp不會復制隱藏文件(以.開頭的文件)。
  • 6. 只復制指定文件的方法

    繼續(xù)上面的例子,A文件夾:

    - A/
     .hi.txt
     a1.txt
     shadow.json
     - dir1/
     dir1.txt
    

    如果想要復制指定文件,可以在文件夾后面加入篩選字符,比如,篩選所有的.txt:

    [root@zcwyou ~]# cp -a A/*.txt B
    

    執(zhí)行完畢后,B目錄是:

    - B/
     a1.txt
    

    需要注意的問題:

    • 不會匹配子文件夾里的文件。
    • 不會匹配隱藏文件(以.開頭的文件)。
    • -a參數(shù)上面有說明。

    7. 一次復制指定指定的多個文件

    cp同時也支持手動指定多個文件,繼續(xù)上面的例子,A文件夾:

    - A/
     .hi.txt
     a1.txt
     shadow.json
     - dir1/
     dir1.txt
    

    執(zhí)行cp:

    [root@zcwyou ~]# cp -a A/.hi.txt A/dir1/dir1.txt B
    

    執(zhí)行完畢后,B目錄是:

    - B/
     .hi.txt
     dir1.txt
    

    需要注意的問題:

    • dir1.txt會被放在根目錄,也就是源文件夾內(nèi)的子目錄不會被保留。
    • -a參數(shù)上面有說明。

    8. 復制時強制覆蓋原文件

    linux復制文件時強制覆蓋原文件

    cp默認會立即覆蓋目標文件(如果存在的話),不做任何提示。

    如果想要cp在覆蓋文件前做提示,請使用-i命令,即cp -i,示例:覆蓋文件前做提示

    [root@zcwyou ~]# cp -i -a documents/. backup/
    

    如果出現(xiàn)沒有加-i參數(shù),但cp仍然會提示覆蓋的問題(比如會提示類似這種消息:cp: overwrite dir/a.txt?)。可能是cp命令被別名化,請使用\cp來運行命令。

    強制不允許覆蓋文件前提示

    [root@zcwyou ~]# \cp -a documents/. backup/
    

    9. 總結(jié)

    cp命令是Linux系統(tǒng)里最最為常用的命令,系統(tǒng)運維者必須掌握它的所有功能和語法。linux復制文件到另一個文件夾或目錄更是最常用的功能之一。

    分享文章:Linux如何使用命令行高效地復制文件到指定目錄
    當前路徑:http://bm7419.com/news/99522.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站導航、網(wǎng)站設(shè)計公司、企業(yè)網(wǎng)站制作面包屑導航、做網(wǎng)站

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

    外貿(mào)網(wǎng)站建設(shè)