本篇博客來(lái)討論linux中cp命令。
cp命令用來(lái)復(fù)制文件或文件夾。它主要有兩種形式
# 用法一:復(fù)制一個(gè)文件
$ cp [option] src-file target-file
# 用法二:復(fù)制多個(gè)文件,目標(biāo)是一個(gè)文件夾
$ cp [option] src-file1 src-file2 ... target-directory
如果一次復(fù)制多個(gè)文件的話,target必須是一個(gè)文件夾。
下面是幾個(gè)常用的選項(xiàng)
- -r --recursive 遞歸復(fù)制,會(huì)復(fù)制文件夾內(nèi)部的文件夾linux常用命令,自動(dòng)創(chuàng)建目標(biāo)位置不存在的文件夾。多用于目錄的復(fù)制
- -p 連同屬性一起復(fù)制,而不是使用默認(rèn)的屬性
- -d 若src-file屬于link file,則復(fù)制為link file,而非文件本身
- -a --archive 等同于-prd,常用于文件備份
- -i --interactive 若目標(biāo)文件以存在,則在覆蓋前詢問(wèn)是否覆蓋
- -u --update 若源文件比目標(biāo)文件新,則覆蓋,否則跳過(guò)
- -f --force 強(qiáng)制復(fù)制
- -s -symbolic-link 復(fù)制為符號(hào)鏈接文件,即快捷方式文件,俗稱軟連接
- -l --link復(fù)制為硬連接文件
cp命令除了簡(jiǎn)單的復(fù)制文件以外,還有幾個(gè)比較常用的場(chǎng)景,分別是:備份文件,更新文件夾中的內(nèi)容,創(chuàng)建快捷方式等,下面我們來(lái)簡(jiǎn)單地模擬一下。
準(zhǔn)備工作:創(chuàng)建一個(gè)src文件夾,里面有三個(gè)文件,分別是:a.txt,b.txt,c.sh,使用ls -l命令的輸出是
$ ls -al
total 12
drwxrwxr-x. 2 kite kite 4096 9月 24 10:03 .
drwxr-xr-x. 4 kite kite 4096 9月 24 10:02 ..
-rw-rw-r--. 1 kite kite 0 9月 24 10:02 a.txt
-rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh
c.sh是一個(gè)bash腳本,里面只有一句話,echo 'hello,world'。
如果你的c.sh文件沒(méi)有執(zhí)行權(quán)限,則使用chmod a+x c.sh來(lái)賦予它可執(zhí)行的權(quán)限
首先嘗試將src文件夾備份為src-backup文件夾,運(yùn)行下面的命令
$ cp src src-backup
cp: -r not specified; omitting directory 'src'
按照提示,我們應(yīng)該加上-r參數(shù),那就加上這個(gè)參數(shù)再試一次,成功了,仔細(xì)看一下src和src-backup文件夾內(nèi)的文件
$ ls -l src src-backup/
src:
total 4
-rw-rw-r--. 1 kite kite 0 9月 24 10:02 a.txt
-rw-rw-r--. 1 kite kite 0 9月 24 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 9月 24 10:03 c.sh
src-backup/:
total 4
-rw-rw-r--. 1 kite kite 0 9月 24 10:11 a.txt
-rw-rw-r--. 1 kite kite 0 9月 24 10:11 b.txt
-rwxrwxr-x. 1 kite kite 19 9月 24 10:11 c.sh
會(huì)發(fā)現(xiàn)三個(gè)文件的創(chuàng)建時(shí)間不一樣了。很顯然,文件備份成這樣是不太行的。其實(shí),備份文件最常用的參數(shù)是-a。讓我們刪掉src-backup文件夾,再試一次