當前位置:生活全書館 >

IT科技

> linux的cp命令詳解

linux的cp命令詳解

1、語法:

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

這兩個語法的效果是一樣的,都是把 SOURCE 代表的檔案複製到 DIRECTORY 目錄中。

2、使用cp命令將檔案複製到目錄:

首先來看下如何把檔案複製到目錄中,使用上面的兩種語法

cp file1 file2 file3 dir1

cp -t dir1 file1 file2 file3

注意,目錄 dir1 必須存在,否則會發生檔案複製重新命名。

3、使用cp命令將目錄複製到目錄:

有時候,我們想把整個目錄複製到另外一個目錄下,這個時候,我們需要加上 -r 或 -R 或 --recursive 選項

cp -r dir1/ dir2/

注意,目錄 dir2 必須存在,否則會發生目錄複製重命令。

4、使用cp命令將目錄項複製到目錄:

cp -r dir1 dir2 是把整個 dir1 目錄複製到目錄 dir2 下,但是有時候我們只想把 dir1 目錄下的內容複製到 dir2 目錄下,使用萬用字元來完成這個任務

cp  dir1/*  dir2

如果 dir1 目錄有 hello.txt 以及 world.txt 兩個檔案,那麼 dir1/* 會被 shell 展開為 dir1/hello.txt 以及 dir1/world.txt,那麼上面的命令的展開形式如下

cp  dir1/hello.txt  dir2/world.txt  dir2

這個形式就是檔案複製到目錄的操作。

注意,目錄 dir2 必須存在,否則會報錯。

5、使用cp命令將檔案複製重新命名:

有時候,我們想複製一個檔案,但是同時又想把副本(複製後的檔案)進行重新命名,cp 命令可以做到,只要重新命名的名子不存在即可

cp file1 dir1/renamed_file1

這個命名會把當前目錄下的 file1 複製到 dir1 目錄下,並且重新命名為 renamed_file1。

注意,只有在 renamed_file1 不存在的情況下,才會發生檔案複製重新命名的操作。如果 renamed_file1 存在,那麼將會用 file1 的內容覆蓋 renamed_file1 的內容。

6、使用cp命令將目錄複製重新命名:

目錄複製重新命名與檔案複製重新命名類似,只是複製目錄需要加上選項 -r。

cp -r dir1/ dir2/renamed_dir1

注意,如果想目錄複製重新命名,那麼 renamed_dir1 目錄必須不存在。如果存在,那麼將會發生把一個目錄複製到另外一個目錄下的操作。

7、使用cp命令將檔案覆蓋:

在前面的部分中提到一個問題,檔案複製可以導致覆蓋操作,例如

cp  file1 file2 dir1

如果 dir1 目錄下存在 file1 檔案,那麼預設將會發生覆蓋,但是不會給我們提示。如果這不是你想要的,那麼可以使用下面幾個選項

使用 -n 選項,不會發生覆蓋操作。

使用 -i 選項,可以提示操作者是否執行覆蓋操作。

使用 -b 選項,在覆蓋前進行備份,備份檔名是原始檔名加上一個波浪線。

使用 -u 選項,表示只有檔案比較新的時候,才發生覆蓋。

8、使用cp命令將備份檔案:

通過--suffix 重新定義備份檔名字尾。

cp  --suffix=.bak file1 dir1

注意,如果指定了 --suffix 選項,那麼已經包含了 -b 的意思,因此不需要再指定 -b 選項。

如果 dir1 目錄已經存在 file1 檔案,那麼會生成一個備份檔案 file1.bak,然後再發生檔案複製。

其實 cp 命令有幾種內建的生成備份檔案的方式,通過 --backup 選項指定,有如下幾個值

simple/never: 備份字尾名為波浪符(~),這是預設方式。

numbered/t : 備份字尾為數字,例如 ~1~。

existing/nil : 如果已經存在數字備份的檔案,那麼就使用數字字尾,否則使用波浪符字尾。

9、使用cp命令將檔案的自我備份:

$ cp -b file1 file1

cp: 'file1' and 'file1' are the same file

這個命令表示在當前目錄下,把 file1 複製為 file1,並且 -b 選項表示生成備份檔案。但是這個命令無法執行,可以通過 -f 選項強制執行

$ cp -vfb hello.c hello.c

'hello.c' -> 'hello.c~'

linux的cp命令詳解

標籤: cp 命令 linux
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/n2rrnz.html