Linux下cp命令,實例解析

其實,cp命令對大家來講,已經司空見慣了,我沒有必要在這邊羅嗦了。直到我發現cp並不是簡單到大家可以不去關心。
我這裏講兩個例子,大家在以後的學習過程中可以注意:
1)cp文件的時候,並不總是拷貝文件權限的
[root@localhost test]# touch a
[root@localhost test]# vim a
[root@localhost test]# ls

a
[root@localhost test]# ls -l
總計 8
-rw-r--r-- 1 root root 24 04-29 00:04 a

[root@localhost test]# cp a b
[root@localhost test]# ls

a b
[root@localhost test]# ls -l
總計 16
-rw-r--r-- 1 root root 24 04-29 00:04 a
-rw-r--r-- 1 root root 24 04-29 00:04 b

[root@localhost test]# chmod 755 a
[root@localhost test]# ls -l
總計 16
-rwxr-xr-x 1 root root 24 04-29 00:04 a
-rw-r--r-- 1 root root 24 04-29 00:04 b

[root@localhost test]# cp a b
cp:是否覆蓋“b”? y
[root@localhost test]# ls -l
總計 16
-rwxr-xr-x 1 root root 24 04-29 00:04 a
-rw-r--r-- 1 root root 24 04-29 00:05 b

[root@localhost test]#

從上面的例子可以看出,剛開始創建了a文件,此時a文件的權限是644。然後拷貝了一份文件b,查看b文件的權限是644。證明此時cp文件的權限是跟着走的。
後面,我們把a文件的權限修改爲755,然後再次拷貝a文件到b,此時再次查看文件b的權限,文件b的權限仍然爲644,這就證明了文件在cp時權限沒有跟着帶走。
如果目標文件不存在,權限可以從源文件帶給目標文件,如果目標文件已存在,則源文件的權限不會強加給目標文件。

2)cp並不總是成功的
如果要cp一個目錄,就必須使用cp -r來拷貝,下面的例子:
[root@localhost test]# ls
[root@localhost test]# mkdir a
[root@localhost test]# mkdir b
[root@localhost test]# l

總計 32
drwxr-xr-x 4 root root 4096 04-29 00:19 .
drwxr-xr-x 4 root root 4096 04-29 00:04 ..
drwxr-xr-x 2 root root 4096 04-29 00:19 a
drwxr-xr-x 2 root root 4096 04-29 00:19 b

[root@localhost test]# cp a b
cp: 略過目錄 “a”
[root@localhost test]# l b
總計 16
drwxr-xr-x 2 root root 4096 04-29 00:19 .
drwxr-xr-x 4 root root 4096 04-29 00:19 ..

[root@localhost test]# cp -r a b
[root@localhost test]# l b

總計 24
drwxr-xr-x 3 root root 4096 04-29 00:19 .
drwxr-xr-x 4 root root 4096 04-29 00:19 ..
drwxr-xr-x 2 root root 4096 04-29 00:19 a

[root@localhost test]#                                 

a和b都是目錄,第一次使用cp命令拷貝文件,拷貝失敗。提示cp:略過目錄"a"
第二次拷貝,加上-r選項,cp成功。

發佈了98 篇原創文章 · 獲贊 6 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章