Linux天天學習一個命令之cp命令

最近學習Linux中的複製文件命令cp,把學習記錄以下

cp [選項] source(來源文件) destination(目的文件)
cp [選項] source1  source2   source3  source4  source5 ...directory

cp命令能夠複製文件或文件夾,後面能夠接多個源文件;當有多個源文件時,最後一個參數是要存放的目的目錄,若目的目錄不存在,不是目的目錄都會報錯。以下面所示:

    
    
    
    
[root@localhost ~]# ll總用量 8-rw-------. 1 root root 1585 4 29 09:11 anaconda-ks.cfg-rw-r--r--. 1 root root 1633 4 29 17:03 initial-setup-ks.cfg[root@localhost ~]# cp /etc/asound.conf /etc/bashrc anaconda-ks.cfg cp: 目標"anaconda-ks.cfg" 不是目錄[root@localhost ~]# cp /etc/asound.conf /etc/bashrc tmpcp: 目標"tmp" 不是目錄

下面來看看選項參數:
-a:至關於-dr
-d:若文件是連接文件,則會複製連接文件而不是文件自己
-f:表示強制複製
-l:進行連接的複製,不是文檔自己的複製
-p;連同文檔的屬性(權限,用戶、時間)一塊兒複製過去,而不是使用複製時的預設的屬性
-r:遞歸地進行復制,對文件夾複製時使用的選項
-s:複製成爲符號連接
-u:將源文件與目的文件進行對比,如有更新才進行復制

下面來看些例子:

例子一:把test複製爲test_root

   
   
   
   
[root@localhost dream]# ll總用量 0-rw-rw-r--. 1 dream dream 0 5 11 09:58 test-rw-rw-r--. 1 dream dream 0 5 11 09:58 test.log[root@localhost dream]# cp test test_root[root@localhost dream]# ll總用量 0-rw-rw-r--. 1 dream dream 0 5 11 09:58 test-rw-rw-r--. 1 dream dream 0 5 11 09:58 test.log-rw-r--r--. 1 root root 0 5 11 09:58 test_root

例子二:把etc目錄複製到./tmp目錄下

   
   
   
   
[root@localhost dream]# cp -r /etc/ ./tmp/

例子三: 把/etc/rc.local連接文件複製到當前目錄並保留連接,不復制文件自己

   
   
   
   
[root@localhost dream]# cp /etc/rc.local ./[root@localhost dream]# ll總用量 4-rw-r--r--. 1 root root 473 5 11 10:11 rc.local[root@localhost dream]# cp -d /etc/rc.local ./[root@localhost dream]# ll總用量 0lrwxrwxrwx. 1 root root 13 5 11 10:13 rc.local -> rc.d/rc.local

看完上面幾個例子,能夠看出,在進行復制文件的時候,目的文件的屬性會隨着當前命令的執行者發生變化;若須要保留原來的屬性,則能夠使用-p選項參數

   
   
   
   
[root@localhost dream]# ll總用量 0-rw-rw-r--. 1 dream dream 0 5 11 09:58 test[root@localhost dream]# cp -p test ./test.tmp[root@localhost dream]# ll總用量 0-rw-rw-r--. 1 dream dream 0 5 11 09:58 test-rw-rw-r--. 1 dream dream 0 5 11 09:58 test.tmp

總結:
cp命令複製文件時會與命令的執行者有關;當要複製多個文件時,最後一個參數必定要是目錄
相關文章
相關標籤/搜索