1. 程式人生 > >linux中cp命令的常見用法

linux中cp命令的常見用法

本篇部落格來討論linux中cp命令。

cp命令用來複制檔案或資料夾。它主要有兩種形式

# 用法一:複製一個檔案
$ cp [option] src-file target-file

# 用法二:複製多個檔案,目標是一個資料夾
$ cp [option] src-file1 src-file2 ... target-directory

如果一次複製多個檔案的話,target必須是一個資料夾。

下面是幾個常用的選項
- -r --recursive 遞迴複製,會複製資料夾內部的資料夾,自動建立目標位置不存在的資料夾。多用於目錄的複製
- -p 連同屬性一起復制,而不是使用預設的屬性
- -d

若src-file屬於link file,則複製為link file,而非檔案本身
- -a --archive 等同於-prd,常用於檔案備份
- -i --interactive 若目標檔案以存在,則在覆蓋前詢問是否覆蓋
- -u --update 若原始檔比目標檔案新,則覆蓋,否則跳過
- -f --force 強制複製
- -s -symbolic-link 複製為符號連結檔案,即快捷方式檔案,俗稱軟連線
- -l --link複製為硬連線檔案

cp命令除了簡單的複製檔案以外,還有幾個比較常用的場景,分別是:備份檔案,更新資料夾中的內容,建立快捷方式等,下面我們來簡單地模擬一下。
準備工作:建立一個src資料夾,裡面有三個檔案,分別是:a.txt,b.txt,c.sh,使用ls -l

命令的輸出是

$ ls -al
total 12
drwxrwxr-x. 2 kite kite 4096 924 10:03 .
drwxr-xr-x. 4 kite kite 4096 924 10:02 ..
-rw-rw-r--. 1 kite kite    0 924 10:02 a.txt
-rw-rw-r--. 1 kite kite    0 924 10:02 b.txt
-rwxrwxr-x. 1 kite kite   19 924 10:03 c.sh

c.sh是一個bash指令碼,裡面只有一句話,echo 'hello,world'
如果你的c.sh檔案沒有執行許可權,則使用chmod a+x c.sh

來賦予它可執行的許可權

使用cp進行備份

首先嚐試將src資料夾備份為src-backup資料夾,執行下面的命令

$ cp src src-backup
cp: -r not specified; omitting directory 'src'

按照提示,我們應該加上-r引數,那就加上這個引數再試一次,成功了,仔細看一下src和src-backup資料夾內的檔案

$ ls -l src src-backup/
src:
total 4
-rw-rw-r--. 1 kite kite  0 924 10:02 a.txt
-rw-rw-r--. 1 kite kite  0 924 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 924 10:03 c.sh

src-backup/:
total 4
-rw-rw-r--. 1 kite kite  0 924 10:11 a.txt
-rw-rw-r--. 1 kite kite  0 924 10:11 b.txt
-rwxrwxr-x. 1 kite kite 19 924 10:11 c.sh

會發現三個檔案的建立時間不一樣了。很顯然,檔案備份成這樣是不太行的。其實,備份檔案最常用的引數是-a。讓我們刪掉src-backup資料夾,再試一次

$ rm -rf src-backup/
$ cp -a src src-backup
$ ls -l src src-backup/
src:
total 4
-rw-rw-r--. 1 kite kite  0 924 10:02 a.txt
-rw-rw-r--. 1 kite kite  0 924 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 924 10:03 c.sh

src-backup/:
total 4
-rw-rw-r--. 1 kite kite  0 924 10:02 a.txt
-rw-rw-r--. 1 kite kite  0 924 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 924 10:03 c.sh

這次的檔案時間都一致了,備份完成!

使用cp更新資料夾中的內容

將a.txt中的內容隨便修改一下,然後,我們再來備份一次。對比一下src資料夾下的a.txt和src-backup資料夾下的a.txt的時間

$ ls -l src/a.txt src-backup/a.txt 
-rw-rw-r--. 1 kite kite 14 924 14:32 src/a.txt
-rw-rw-r--. 1 kite kite  0 924 10:02 src-backup/a.txt

可以看出來src/a.txt的時間更新
接下來通過-u引數來將更新後的a.txt備份到src-backup資料夾下

cp -u src/* src-backup/

檢視一下修改時間

ls -l src src-backup/
src:
total 8
-rw-rw-r--. 1 kite kite 24 924 14:32 a.txt
-rw-rw-r--. 1 kite kite  0 924 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 924 10:03 c.sh

src-backup/:
total 8
-rw-rw-r--. 1 kite kite 24 924 14:32 a.txt
-rw-rw-r--. 1 kite kite  0 924 10:02 b.txt
-rwxrwxr-x. 1 kite kite 19 924 10:03 c.sh

可以看出來,備份檔案已經更新了
還可以指定-i引數,在替換之前會詢問是否繼續。

建立快捷方式

src目錄下有一個c.sh指令碼,如果希望在任何地方都能執行它,通用的方法是在/usr/bin下面建立一個快捷方式。

$ cd /usr/bin/
$ sudo cp -s ~/Demos/src/c.sh c

建立快捷方式的話,需要先進入目標資料夾內。我將src下的c.sh指令碼建立了一個快捷方式c,從任何一個終端位置都可以直接執行c這個命令。

相關推薦

linuxcp命令常見用法

本篇部落格來討論linux中cp命令。 cp命令用來複制檔案或資料夾。它主要有兩種形式 # 用法一:複製一個檔案 $ cp [option] src-file target-file # 用法二:複製多個檔案,目標是一個資料夾 $ cp [option

Linuxdd命令用法

dddd命令: convert and copy a file用法:dd?if=/PATH/FROM/SRC?of=/PATH/TO/DEST bs=#:?block?size,?復制單元大小 count=#:復制多少個bs of=file?寫到所命名的文件而不是到標準輸出 if=file?從所命名文件讀取而

Linuxsource命令用法

立即生效 常常 new 重新登錄 核心 linu 用戶 成功 多次 source命令:   source命令也稱為“點命令”,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必註銷並重新登錄。因為lin

linuxgrep命令用法

作為linux中最為常用的三大文字(awk,sed,grep)處理工具之一,掌握好其用法是很有必要的。 首先談一下grep命令的常用格式為:grep  [選項]  ”模式“  [檔案] grep家族總共有三個:grep,egrep,fgrep。 常用選項:   -

【每天一個Linux命令】01. Linuxping命令用法

PING: PING (Packet Internet Grope),因特網包探索器 功能說明: 檢測網路的連通性:ping可以測試計算機名和計算機的 ip 地址,驗證與遠端計算機的連線,通過將 icmp 回顯資料包傳送到計算機並偵聽回顯回覆資料包來驗證與一臺

Linux管道命令用法

一. 管道命令 管道命令操作符是:”|”,它只能處理經由前面一個指令傳出的正確輸出資訊,對錯誤資訊資訊沒有直接處理能力。然後,傳遞給下一個命令,作為標準的輸入. 管理命令的輸出說明: 【指令1】正確輸出,作為【指令2】的輸入 然後【指令2】的輸出作為【指

linuxfind命令用法

find命令是比較常用的命令,用來在特定目錄下查詢具有某種特徵的檔案。 一:find命令格式如下: find [-path......] -options [-print -exec -ok] path:要查詢的目錄路徑(“~”表示$home目錄;“.”表示當前目錄;“/”

Linux之sed命令常見用法

cron 更改 inux api lin sed命令 -s 輸出 syslog 1. sed(stream editor),流編輯器   linux中,主要中sed命令實現對文件的增刪改替換查 名稱 sed - 用於過濾和轉換文本的流編輯

Linux date命令用法

關於Linux內建命令date的用法,這裡主要說一下,它在shell指令碼中如何做日期計算和轉換的。 格式化輸出日期 詳細的格式化符號可以用man date找到,這裡以年月日來表示 獲得當前的日期: # date +%Y-%m-%d 2014-10-0 2# date "+

Linuxcp命令介紹

功能: 複製檔案或目錄 說明: cp指令用於複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有檔案或目錄複製到此目錄中。若同時指定多個檔案或目錄,而最後的目的地並非一個已存在的目錄,則會出現錯誤資訊 引數:   -a 或 --archive

linuxping命令用法

PING: PING (Packet Internet Grope),因特網包探索器 功能說明: 檢測網路的連通性:ping可以測試計算機名和計算機的 ip 地址,驗證與遠端計算機的連線,通過將 icmp 回顯資料包傳送到計算機並偵聽回顯回覆資料包來驗證與一臺或多

Linuxseq命令用法

seq-f, --format=FORMAT      use printf style floating-point FORMAT (default: %g)-s, --separator=STRING   use STRING to separate numbers (default: /n)-w, --

【每天一個Linux命令】08. Linuxtime命令用法

Linux中time命令,我們經常用來計算某個程式的執行耗時(real),使用者態cpu耗時(user),系統態cpu耗時(sys) time命令最常用的使用方式就是在其後面直接跟上命令和引數:ti

Linuxawk命令的簡單用法

.cn inux total com mage 簡單 image 用法 int 一、用例1:   cat /proc/meminfo|grep "MemTotal"|awk ‘{print $2}‘   說明,$2表示第2位,$0表示全部,如需表示$,可用$$轉義。

linuxwc命令用法

字節 統計字符 -- 幫助信息 linux系統 count 沒有 標準 讀取 Linux系統中的wc(Word Count)命令的功能為統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。 1.命令格式: wc [選項]文件... 2.命令功能: 統計指定文件中的字節

linuxtar命令用法

log mco file 並且 unrar 過程 lin 文件名 壓縮歸檔 -c: 建立壓縮檔案-x:解壓-t:查看內容-r:向壓縮歸檔文件末尾追加文件-u:更新原壓縮包中的文件 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是

Linuxfind命令用法全匯總,看完就沒有不會用的!

分用 想要 單個 ges 基本上 特定 cda size 以及 Linux 查找命令是Linux系統中最重要和最常用的命令之一。查找用於根據與參數匹配的文件指定的條件來搜索和查找文件和目錄列表的命令。查找可以在各種條件下使用,您可以通過權限,用戶,組,文件類型,日期,大小等

Linuxfind命令用法全彙總

Linux 查詢命令是Linux系統中最重要和最常用的命令之一。查詢用於根據與引數匹配的檔案指定的條件來搜尋和查詢檔案和目錄列表的命令。查詢可以在各種條件下使用,您可以通過許可權,使用者,組,檔案型別,日期,大小等可能的條件查詢檔案。 第一部分:查詢名稱查詢檔

Linuxcp(拷貝)命令

如果同時指定兩個以上的檔案或目錄,且最後的目的地是一個已存在的目錄,則此命令會把前面指定的所有檔案或目錄複製到該目錄中。 Linux下進行復制的命令為cp。 假設複製源目錄為dir1,目標目錄為dir2。怎樣才能將dir1下所有檔案複製到dir2下呢? 兩種情況: 1)如果dir

Linuxln命令用法詳解

硬連線指向的是節點(inode),是已存在檔案的另一個名字,修改其中一個,與其連線的檔案同時被修改;對硬連結檔案進行讀寫和刪除操作時候,效果和符號連結相同。但如果我們刪除硬連結檔案的原始檔,硬連結檔案