分类: LINUX
2012-12-04 10:24:58
cp (複制檔案或目錄)
[root@linux ~]# cp [-adfilprsu] 來源檔(source)
目的檔(destination)
[root@linux ~]# cp [options] source1 source2 source3 ….
directory
參數:
-a :相當于 -pdr 的意思;
-d :若來源文件爲連結文件的屬性(link file),則複制連結文件屬性而非檔案本身;
-f :爲強制
(force) 的意思,若有重複或其它疑問時,不會詢問使用者,而強制複制;
-i
:若目的檔(destination)已經存在時,在覆蓋時會先詢問是否真的動作!
-l :進行硬式連結 (hard link)
的連結檔建立,而非複制檔案本身;
-p :連同檔案的屬性一起複制過去,而非使用預設屬性;
-r :遞歸持續複制,用于目錄的複制行爲;
-s
:複制成爲符号連結文件 (symbolic link),亦即『快捷方式』檔案;
-u :若 destination 比 source 舊才更新
destination !
最後需要注意的,如果來源檔有兩個以上,則最後一個目的文件一定要是『目錄』才行!
範例:
範例一:将家目錄下的
.bashrc 複制到 /tmp 下,并更名爲 bashrc
[root@linux ~]# cd /tmp
[root@linux tmp]# cp ~/.bashrc bashrc
[root@linux tmp]# cp -i ~/.bashrc bashrc
cp:
overwrite `basrhc’? n
#
重複作兩次動作,由于 /tmp 底下已經存在 bashrc 了,加上 -i 參數,
# 則在覆蓋前會詢問使用者是否确定!可以按下 n 或者 y
呢!
# 但是,反過來說,如果不想要詢問時,則加上 -f 這個參數來強制直接覆蓋!
範例二:将
/var/log/wtmp 複制到 /tmp 底下
[root@linux tmp]# cp /var/log/wtmp . <==想要複制到目前的目錄,最後的 .
不要忘
[root@linux tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r– 1 root
utmp 71808 Jul 18 12:46 /var/log/wtmp
-rw-r–r– 1 root root 71808 Jul 18 21:58
wtmp
# 注意到了嗎?!在不加任何參數的情況下,檔案的所屬者會改變,連權限也跟着改變了~
#
這是個很重要的特性!要注意喔!還有,連檔案建立的時間也不一樣了!
# 如果您想要将檔案的所有特性都一起複制過來,可以加上 -a
喔!
[root@linux tmp]# cp -a /var/log/wtmp wtmp_2
[root@linux tmp]# ls -l /var/log/wtmp
wtmp_2
-rw-rw-r– 1 root utmp 71808 Jul 18 12:46 /var/log/wtmp
-rw-rw-r– 1
root utmp 71808 Jul 18 12:46 wtmp_2
# 了了吧!整個資料特性完全一模一樣ㄟ!真是不賴~這就是 -a 的特性!