Linux常用命令 CP

2021-10-08 04:23:37 字數 2868 閱讀 4573

cp (複製檔案或目錄)

範例一:用root身份,將主資料夾下的 .bashrc 複製到 /tmp 下,並更名為 bashrc

重複作兩次動作,由於 /tmp 下面已經存在 bashrc 了,加上 -i 選項後, 則在覆蓋前會詢問使用者是否確定!可以按下 n 或者 y 來二次確認呢!

範例二:變換目錄到/tmp,並將/var/log/wtmp複製到/tmp且觀察屬性:

注意上面的特殊字型,在不加任何選項的情況下,檔案的某些屬性/許可權會改變;

這是個很重要的特性!要注意!還有,連檔案建立的時間也不一樣了!

那如果你想要將檔案的所有特性都一起複製過來該怎辦?可以加上 -a 實現!如下所示:

這個 cp 的功能很多,由於我們常常會進行一些資料的複製,所以也會常常用到這個指令的。 一般來說,我們如果去複製別人的資料 (當然,該檔案你必須要有 read 的許可權才行啊!) 時, 總是希望複製到的資料最後是我們自己的,所以,在預設的條件中, cp 的**檔案與目的檔案的許可權是不同的,目的檔案的擁有者通常會是指令操作者本身。舉例來說, 上 面的範例二中,由於我是 root 的身份,因此複製過來的檔案擁有者與群組就改變成為 root 所 有了! 這樣說,可以明白嗎?

由於具有這個特性,因此當我們在進行備份的時候,某些需要特別注意的特殊許可權檔案, 例 如密碼檔 (/etc/shadow) 以及一些配置檔案,就不能直接以 cp 來複製,而必須要加上 -a 或者是 -p 等等可以完整複製檔案許可權的選項才行!另外,如果你想要複製檔案給其他的使用 者, 也必須要注意到檔案的許可權(包含讀、寫、執行以及檔案擁有者等等), 否則,其他人 還是無法針對你給予的檔案進行修訂的動作喔!注意注意!

範例三:複製 /etc/ 這個目錄下的所有內容到 /tmp 下面

如果是目錄則不能直接複製,要加上 -r 的選項

還是要再次的強調喔! -r 是可以複製目錄,但是,檔案與目錄的許可權可能會被改變

所以,也可以利用「 cp -a /etc /tmp 」來下達指令!尤其是在備份的情況下!

範例四:將範例一複製的 bashrc 建立乙個鏈結檔案 (symbolic link)

使用 -l 及 -s 都會建立所謂的鏈結檔案(link file),但是這兩種鏈結檔案卻 有不一樣的情況。這是怎麼一回事啊? 那個 -l 就是所謂的實體鏈結(hard link),至於 -s 則 是符號鏈結(symbolic link), 簡單來說,bashrc_slink 是乙個「捷徑」,這個捷徑會鏈結到 bashrc去!所以你會看到檔名右側會有個指向(->)的符號!

範例五:若 ~/.bashrc 比 /tmp/bashrc 新才複製過來

這個 -u 的特性,是在目標檔案與**檔案有差異時,才會複製的。 所以,比較常被用於「備份」的工作當中!

範例六:將範例四造成的 bashrc_slink 複製成為 bashrc_slink_1 與bashrc_slink_2

這個例子也是很有趣喔!原本複製的是鏈結檔案,但是卻將鏈結檔案的實際檔案複製過來了 。也就是說,如果沒有加上任何選項時,cp複製的是原始檔案,而非鏈結檔案的屬性! 若要複製鏈結檔案的屬性,就得要使用 -d 的選項了!如 bashrc_slink_2 所示。

範例七:將主資料夾的 .bashrc 及 .bash_history 複製到 /tmp 下面

可以將多個資料一次複製到同乙個目錄去!最後面一定是目錄!

例題:你能否使用 使用者的身份(這裡為ldz),完整的複製/var/log/wtmp檔案到/tmp下面,並更名為 ldz_wtmp呢?

實際做看看的結果如下:

由於 ldz 的身份並不能隨意修改檔案的擁有者與群組,因此雖然能夠複製wtmp的相關許可權 與時間等屬性, 但是與擁有者、群組相關的,原本 ldz 身份無法進行的動作,即使加上 - a 選項,也是無法達成完整複製許可權的! 總之,由於 cp 有種種的檔案屬性與許可權的特性,所以,在複製時,你必須要清楚的了解到: 是否需要完整的保留**檔案的資訊? **檔案是否為鏈結檔案 (symbolic link file)? **檔案是否為特殊的檔案,例如 fifo, socket 等? **檔案是否為目錄?

linux常用命令 cp

cp 複製檔案 或者目錄等 可以使用這個命令複製乙個檔案到乙個指定的目的地,或者複製任意多個檔案到乙個目的目錄目錄.如果最後乙個命令引數為乙個已經存在的目錄名,cp會將每乙個原始檔複製到那個目錄下 維持原檔名 如果所給的引數只有兩個檔名.它把前乙個檔案複製到後乙個檔案上.如果最後乙個引數不是檔名,目...

Linux常用命令 七 cp

cp命令用來複製檔案或者目錄,是linux系統中最常用的命令之一。一般情況下,shell會設定乙個別名,在命令列下複製檔案時,如果目標檔案已經存在,就會詢問是否覆蓋,不管你是否使用 i引數。但是如果是在shell指令碼中執行cp時,沒有 i引數是不會詢問是否覆蓋。這說明命令列和shell指令碼的執行...

linux常用命令 7 cp命令

cp命令用來複製檔案或者目錄,是linux系統中最常用的命令之一。一般情況下,shell會設定乙個別名,在命令列下複製檔案時,如果目標檔案已經存在,就會詢問是否覆蓋,不管你是否使用 i引數。但是如果是在shell指令碼中執行cp時,沒有 i引數時不會詢問是否覆蓋。這說明命令列和shell指令碼的執行...