命令解釋
複製(cp
)這個命令特別重要,我們會經常進行一些資料的複製,但是這個命令也可以建立連線檔案(也就是我們所熟悉的快捷方式)。如果你不是管理員(root)使用者,就會牽扯到許可權這個部分的困擾,接下來我們進行舉例一一說明。
命令說明
[root@localhost ~]# cp [-adfilprsu] 原始檔(source) 目標檔案(destination)
[root@localhost ~]# cp [options] source1 source2 source3 ... destination
引數:-a : 相當於 -pdr 的意思,我們下面會說明用法。[【常用】]
-d : 若原始檔為連線檔案的屬性,怎麼複製連線檔案屬性而非檔案本身。
-f : 為強制(force)的意思,若目標檔案已經存在且無法開啟,則刪除後再嘗試一次。
-i : 如目標檔案(destination)已經存在時,在覆蓋時會先詢問。[【常用】]
-l : 進行硬連線的連線檔案建立,而非複製檔案本身。
-p : 連同檔案的屬性一起複製過去,而非使用預設屬性。【備份常用】
-r : 遞迴持續複製,用於目錄的複製行為。[【常用】]
-s : 複製成為符號鏈結檔案,即「快捷方式」檔案。[【常用】]
-u : 若 destination 比 source 舊才更新 destination。
最後要注意,如果原始檔有兩個以上,則最後乙個的目標檔案一定要是「目錄」才行!
命令舉例
例題一、將123.log檔案複製到/test下,並更名為456.log
[root@localhost ceshi]# ll
-rw-r--r-- 1 root
root 0 08-02 21:00 123.log
drwxr-xr-x 2 root
root 4096 08-02 21:01
test
[root@localhost ceshi]# cp 123.
log test/456.
log[root@localhost ceshi]# cp -i 123.
log test/456.
logcp:是否覆蓋「test/456.
log」? n <= 不覆蓋,取消操作。 y <= 覆蓋。
# 由於test資料夾中已經存在456.
log了,加上 -i 引數後,則在覆蓋前會詢問使用者是否確定,就可以按下 n 或 y 來二次確認了!
例題
二、檢視/tmp目錄下,會看到haha.log,將它複製到/home/ceshi下並且檢視屬性
root@localhost ceshi]# ll /tmp
-rw-rw-r-- 1 wenjie wenjie 0 08-02
21:09 haha.log
[root@localhost ceshi]# cp /tmp/haha.log . <= 想要複製到當前目錄,最後的「.」不能忘
[root@localhost ceshi]# ll /tmp/haha.log haha.log
-rw-r--r-- 1 root root 0 08-02
21:11 haha.log
-rw-rw-r-- 1 wenjie wenjie 0 08-02
21:09 /tmp/haha.log
# 在不加任何引數的情況下,檔案的某些屬性/許可權會改變,連建立時間也不一樣了。
[root@localhost ceshi]# cp -a /tmp/haha.log haha2.log
[root@localhost ceshi]# ll /tmp/haha.log haha2.log
-rw-rw-r-- 1 wenjie wenjie 0 08-02
21:09 haha2.log
-rw-rw-r-- 1 wenjie wenjie 0 08-02
21:09 /tmp/haha.log
# 兩個檔案屬性一模一樣,這就是 -a 的特性。
例題
三、複製/tmp目錄到/home/ceshi目錄下面去
[root@localhost ceshi]# cp /tmp .
cp: 略過目錄 「/tmp」 <= 不能直接複製目錄,需要加上 -r 的引數。
[root@localhost ceshi]# cp -r /tmp .
# -r 雖然是用來複製目錄的,但是複製過來,檔案與目錄的許可權可能會被改變
# 所以,也可以利用「cp - a /tmp .」來執行命令。
例題
四、將例題一複製的 456.log 建立乙個連線檔案
[root@localhost ceshi]# cp -l test/456.
log aaa.log
[root@localhost ceshi]# cp -s test/456.
log bbb.log
[root@localhost ceshi]# ll
-rw-r--r-- 2 root root 47
08-02
23:05 aaa.log
lrwxrwxrwx 1 root root 12
08-02
23:08 bbb.log -> test/456.
logdrwxr-xr-x 2 root root 4096
08-02
23:05 test
使用-l
建立的aaa.log就是乙個硬連線檔案,而使用-s
建立的bbb.log就是乙個軟連線檔案,也就是說,bbb.log就是相當於咱們熟悉的「快捷方式」。
例題五、將例題四生成的bbb.log連線檔案複製
[root@localhost ceshi]# cp bbb.log ccc.log
[root@localhost ceshi]# cp -d bbb.log ddd.log
[root@localhost ceshi]# ll bbb.log ccc.log ddd.log test/456.
log
lrwxrwxrwx 1 root root 12
08-02
23:08 bbb.log -> test/456.
log-rw-r--r-- 1 root root 75
08-02
23:15 ccc.log
lrwxrwxrwx 1 root root 12
08-02
23:16 ddd.log -> test/456.
log-rw-r--r-- 2 root root 75
08-02
23:09 test/456.
log# 能看出來,ccc.log與原始檔一模一樣,這裡很有意思,咱們複製的是連線檔案,結果卻將原檔案複製過來了
# 也就是說,如果沒有加任何引數時,cp複製的是原始檔,而非連線檔案本身。
# 若要複製連線檔案的屬性,就得使用 -d 的引數了!
例題
六、將1、2、3檔案複製到test資料夾下
[
root@localhost
ceshi]#
ll-rw-
r--r
--1root
root008
-0223:231-
rw-r-
-r--
1root
root008
-0223:232-
rw-r-
-r--
1root
root008
-0223:23
3drwxr-xr
-x2root
root
409608-
0223:23
test
[
root@localhost
ceshi]#
cp123
test
[root@localhost
ceshi]#
lltest-rw
-r--
r--1
root
root008
-0223:251-
rw-r-
-r--
1root
root008
-0223:252-
rw-r-
-r--
1root
root008
-0223:253#
可以將多個檔案複製到同乙個目錄中,但是最後一定要是目錄
cp 複製檔案或目錄
root linux cp adf ilprsu 檔 source 目的檔 destination root linux cp options source1 source2 source3 directory 引數 a 相當於 pdr 的意思 d 若 檔案為鏈結檔案的屬性 link file 則複...
cp 複製檔案或目錄
功能 複製檔案或目錄 說明 cp指令用於複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是乙個已經存在的目錄,則它會把前面指定的所有檔案或目錄複製到此目錄中。若同時指定多個檔案或目錄,而最後的目的地並非乙個已存在的目錄,則會出現錯誤資訊 引數 a 或 archive 此引數的效果和同時...
複製檔案或目錄命令 cp
1 命令名稱 cp 2 英文原意 copy 3 命令所在路徑 bin cp 4 執行許可權 所有使用者 5 功能描述 複製檔案或目錄 語法 cp rp 原檔案或目錄 目標目錄 r 複製目錄 p 保留檔案屬性 例子 比如我們將 root 目錄下的install.log 檔案複製到 tmp 目錄下 可以...