如何使用cp命令復制文件和目錄!【Linux命令合集】

如何使用cp命令復制文件和目錄!【Linux命令合集】


Linux命令


只要你使用Linux,你就會一直使用cp命令。用于復制文件和目錄。
常用組合鍵:

# -r:復制整個目錄(遞歸)
# -p:保留原始文件所有者、組、權限和時間戳
cp -rp foldA foldB

今天詳細講解了Linux cp命令的使用方法。

1 cp命令復制文件和目錄的基礎知識


  • 1.1普通復制
    1.2按原樣復制文件名
    1.3復制多個文件
    1.4帶通配符的復制

2 cp 命令的有用選項


  • 2.1 cp命令選項列表
    2.2 -r 選項:復制整個目錄
    2.3 -f選項:強制復制
    2.4 -i選項:覆蓋時檢查
    2.5 -b選項(–backup):覆蓋時創建備份文件
    2.6 -s選項(–symbolic-link):創建符號鏈接
    2.7 -l選項:創建硬鏈接
    2.8 -v選項:顯示副本信息
    2.9 -P選項(–parents):復制整個目錄結構

cp命令是copy的縮寫,是按原樣復制文件的命令。基本格式如下。

$ cp 復制原文件 復制后文件

例如,它看起來像這樣:

$ cp fileA.txt fileA_copy.txt
[wanglian@localhost shell]$ ls
fileA.txt
[wanglian@localhost shell]$ cp fileA.txt fileA_copy.txt
[wanglian@localhost shell]$ ls
fileA.txt  fileA_copy.txt
[wanglian@localhost shell]$

復制現已完成。

當然,你也可以將其復制到其他目錄。以下示例將復制目標指定為 dir 目錄。

$ cp fileA.txt dir/fileA_copy.txt

這只是基礎知識,很多人可能都知道如何使用它。

按原樣復制文件名


如果要復制同名文件而不更改它,只需在復制目標中寫入目錄名稱即可。

$ cp 復制原文件 復制后路徑名

這就是制作副本所需要做的全部工作。它看起來像這樣:將 fileA.txt 復制到 dir 目錄中。

$ cp fileA.txt dir
[wanglian@localhost shell]$ ls
dir  fileA.txt  fileA_copy.txt
[wanglian@localhost shell]$ cp fileA.txt dir/
[wanglian@localhost shell]$
[wanglian@localhost shell]$ ls dir/
fileA.txt
[wanglian@localhost shell]$

復制多個文件


很多人可能不知道這一點,但是您也可以同時復制多個文件。將文件保存在與上面同名的目錄中。

$ cp 復制原文件1 復制原文件2 復制后路徑名
$ cp fileA.txt fileB.txt dir
[wanglian@localhost shell]$ ls
dir  fileA.txt  fileA_copy.txt  fileB.txt
[wanglian@localhost shell]$
[wanglian@localhost shell]$ cp fileA.txt fileB.txt dir
[wanglian@localhost shell]$
[wanglian@localhost shell]$ ls dir/
fileA.txt  fileB.txt
[wanglian@localhost shell]$

這樣就可以同時復制兩個文件了。

使用通配符復制


您還可以使用通配符一次性復制全部內容。它看起來像這樣:

$ cp file* 復制后路徑名
[wanglian@localhost shell]$ ls
dir  fileA.txt  fileA_copy.txt  fileB.txt
[wanglian@localhost shell]$
[wanglian@localhost shell]$ cp file* dir/
[wanglian@localhost shell]$ ls dir/
fileA.txt  fileA_copy.txt  fileB.txt
[wanglian@localhost shell]$

這也非常有用。記住這一點并沒有什么壞處。

cp 命令的有用選項


cp 命令選項列表

稍后我會介紹一些特別有用的,但首先我們先介紹一個列表。

選項解釋
-A復制時保留原始文件屬性和目錄結構。盡可能。
-b創建將被覆蓋的文件的備份
-d復制符號鏈接時,復制實體
-F即使復制目的地存在同名文件,該文件也會被覆蓋而不會發出警告。
-i如果有文件將被覆蓋,系統會要求您確認。
-l創建硬鏈接
-P隨目錄復制
-p保留原始文件所有者、組、權限和時間戳
-r復制整個目錄(遞歸)
-s創建符號鏈接
-u當保存目的地是同名文件時,請檢查時間戳,如果較新或相同則不要復制。
-v顯示副本詳細信息

這些是 cp 命令的選項。我們將只介紹有用的項目。

-r 選項:復制整個目錄


cp 命令最常用的選項是“-r”選項。

您可以通過添加 -r 選項來復制整個目錄。目錄中的文件也會被復制。

$ cp -r 復制原路徑 復制后路徑
[wanglian@localhost shell]$ ls
dir  fileA.txt  fileA_copy.txt  fileB.txt
[wanglian@localhost shell]$
[wanglian@localhost shell]$ cp -r dir/ dir2/
[wanglian@localhost shell]$
[wanglian@localhost shell]$ ls dir2/
fileA.txt  fileA_copy.txt  fileB.txt
[wanglian@localhost shell]$

-f 選項:強制復制

雖然根據發行版而有所不同,但可能會要求您確認復制目的地是否存在同名文件。

如果不想一一回答,可以使用“-f”命令。以force的名義強行覆蓋。

[wanglian@localhost shell]$ cp -f fileA.txt fileB.txt
[wanglian@localhost shell]$

-i選項:覆蓋時檢查

與 -f 選項相反,有時您想要檢查它是否會被覆蓋。處理重要文件時,覆蓋可能是致命的。

$ cp -i 復制原文件 復制后文件

將出現“是或否”確認信息。

[wanglian@localhost shell]$ cp -i fileA.txt fileB.txt
cp: 'fileB.txt' を上書きしますか? no
[wanglian@localhost shell]$

這可能是最近發行版中的默認設置。如果沒有設置,可以使用別名來設置。

-b選項(–backup):覆蓋時創建備份文件


當您處理重要文件時,覆蓋它們是很可怕的。在這種情況下可以使用“-b”選項。

如果使用-b選項,則在執行cp命令的同時將創建備份文件。

[wanglian@localhost shell]$ cp -b fileA.txt fileB.txt
[wanglian@localhost shell]$ ls
dir  dir2  fileA.txt  fileA_copy.txt  fileB.txt  fileB.txt~
[wanglian@localhost shell]$

末尾帶有“~”的文件就是備份的文件。自動生成。

備份末尾添加的字符串不限于“~”,還可以指定。使用 --suffix 選項。

$ cp -b --suffix=_$(date +%Y%m%d) 復制原文件 復制后文件

如果這樣做,您可以附加今天的日期,例如“_20231123”。作為備份,這個更容易理解。

[wanglian@localhost shell]$ cp -b --suffix=_$(date +%Y%m%d) fileA.txt fileB.txt
[wanglian@localhost shell]$
[wanglian@localhost shell]$ ls
dir  dir2  fileA.txt  fileA_copy.txt  fileB.txt  fileB.txt_20231123  fileB.txt~
[wanglian@localhost shell]$

您還可以使用編號之類的方法添加數字。查看幫助了解詳細信息。

-s 選項(–symbolic-link):創建符號鏈接


通常,創建符號鏈接時使用ln命令。

$ ln -s 原文件 符號鏈接

事實上,您也可以使用 cp 命令來完成此操作。方法是使用-s命令。

$ cp -s 原文件 符號鏈接

你實際上可以創建一個。

[wanglian@localhost shell]$ ls
dir  dir2  fileA.txt  fileB.txt
[wanglian@localhost shell]$
[wanglian@localhost shell]$ cp -s fileA.txt fileA_symbolic.txt
[wanglian@localhost shell]$ ls -l
合計 8
drwxr-xr-x. 2 wanglian wanglian 62 1123 13:36 dir
drwxr-xr-x. 2 wanglian wanglian 62 1123 13:52 dir2
-rw-r--r--. 1 wanglian wanglian 17 1123 13:21 fileA.txt
lrwxrwxrwx. 1 wanglian wanglian  9 1123 14:57 fileA_symbolic.txt -> fileA.txt
-rw-r--r--. 1 wanglian wanglian 17 1123 14:49 fileB.txt
[wanglian@localhost shell]$

-l 選項:創建硬鏈接


同樣,您可以使用“-l”選項來創建硬鏈接。如果使用“ls -il”命令檢查,可以確認 i 節點(i-node)是相同的。

[wanglian@localhost shell]$ cp -l fileA.txt fileA_hard.txt
[wanglian@localhost shell]$ ls -il
合計 12
33577067 drwxr-xr-x. 2 wanglian wanglian 62 1123 13:36 dir
50336705 drwxr-xr-x. 2 wanglian wanglian 62 1123 13:52 dir2
16778240 -rw-r--r--. 2 wanglian wanglian 17 1123 13:21 fileA.txt
16778240 -rw-r--r--. 2 wanglian wanglian 17 1123 13:21 fileA_hard.txt
16777375 lrwxrwxrwx. 1 wanglian wanglian  9 1123 14:57 fileA_symbolic.txt -> fileA.txt
16778241 -rw-r--r--. 1 wanglian wanglian 17 1123 14:49 fileB.txt
[wanglian@localhost shell]$

-v選項:顯示復制信息


使用 -v 選項顯示有關已復制內容的信息。這在使用通配符等時很有用。

[wanglian@localhost shell]$ cp -v file* dir
'fileA.txt' -> 'dir/fileA.txt'
'fileA_hard.txt' -> 'dir/fileA_hard.txt'
'fileA_symbolic.txt' -> 'dir/fileA_symbolic.txt'
'fileB.txt' -> 'dir/fileB.txt'
[wanglian@localhost shell]$

-P 選項(–parents):復制整個目錄結構


無法使用普通 cp 命令復制子目錄。在這種情況下,請使用“-P”選項。

如果您在沒有任何選項的情況下運行下面的示例,fileC.txt 通常會放置在 dir 目錄中。您可以看到,通過使用 --parents 選項,我們可以按原樣復制目錄結構。

[wanglian@localhost shell]$ cp --parents ./etc/fileC.txt dir
[wanglian@localhost shell]$
[wanglian@localhost shell]$ ls dir/
etc  fileA.txt  fileA_copy.txt  fileA_hard.txt  fileA_symbolic.txt  fileB.txt
[wanglian@localhost shell]$


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163971.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163971.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163971.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux】:消息隊列和信號量

消息隊列和信號量 一.消息隊列1.原理2.消息隊列的各種接口1.創建消息隊列2.釋放消息隊列3.發送和接收信息 二.信號1.概念2.各種接口1.創建信號量2.銷毀信號量3.對信號量進行操作 三.一個現象 一.消息隊列 1.原理 這種消息隊列被稱為system V標準。 可以使用ipcs -q來查詢消息隊…

分頁符 分頁

【插入】---【分頁符】 目錄和一級標題得新起一頁

【React-Router】路由快速上手

1. 創建路由開發環境 # 使用CRA創建項目 npm create-react-app react-router-pro# 安裝最新的ReactRouter包 npm i react-router-dom2. 快速開始 // index.jsimport React from react; import ReactDOM from react-dom/client; import ./index.css; import App from ./App; i…

QEMU Guest Agent本地提權漏洞處理(CVE-2023-0664)

一、漏洞描述 QEMU Guest Agent(qga)類似于vmware中的 vmtools,相關安全報告顯示它的Windows版本安裝程序存在本地提權高危漏洞(CVE-2023-0664),攻擊者可利用該漏洞進行本地權限提升,獲得SYSTE…

音視頻5、libavformat-1

libavformat庫,是FFmpeg中用于處理各種媒體容器格式(media container format)的庫。它的兩個最主要的功能是 : demuxing:解封裝,將一個媒體文件分割為多個多媒體流 muxing:封裝,將多個多媒體數據流寫入到指定媒體容器格式的文件中 這兩個過程所做的…

智能化學習打破資源障礙 成為英語學習新趨勢

智能化學習是一種基于互聯網和人工智能技術的學習行為,通過網絡,學習者可以隨時隨地進行學習,真正打破了時間和空間的限制。與傳統線下學習方式相比,智能化學習更加方便、資源更加豐富,使海量英語學習資源唾手可得,智能化學習正逐漸成為中國孩子習得英語的重要方式。 隨著全球…

基于python和django旅游管理系統

基于python和django旅游管理系統 摘要 基于Python和Django的旅游管理系統是一個以現代化技術為基礎的系統,旨在提升旅游行業的管理效率和服務水平。該系統以Django框架為核心,結合Python編程語言的靈活性和強大的生態系統,實現了多方面的功能…

vue3之echarts漸變柱狀圖

vue3之echarts漸變柱狀圖 效果&#xff1a; 核心代碼&#xff1a; <template><div class"abnormal"><div class"chart" ref"chartsRef"></div></div> </template><script setup> import * as echa…

新手小白想做跨境電商,應該選第三方平臺還是獨立站?

近幾年在疫情的影響下&#xff0c;電商特有的“免接觸”模式迅速切中消費者的心理痛點&#xff0c;加上國內電商發展已經趨于平緩&#xff0c;很多線下店鋪被迫關閉&#xff0c;這也使得越來越多的大賣和平臺也不約而同布局跨境電商。而說到跨境電商&#xff0c;或許大家普遍想…

論文閱讀:MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model

論文標題&#xff1a; MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model 翻譯&#xff1a; MedSegDiff&#xff1a;基于擴散概率模型的醫學圖像分割 名詞解釋&#xff1a; 高頻分量&#xff08;高頻信號&#xff09;對應著圖像變化劇烈的部分&…

視頻剪輯達人分享:高效減片頭時長并調整播放速度的技巧,提升視頻品質

在視頻剪輯的過程中&#xff0c;許多初學者經常會遇到一些問題&#xff0c;如片頭過長、播放速度不適當等&#xff0c;這些問題不僅會影響觀眾的觀看體驗&#xff0c;還會對視頻品質產生負面影響。在調整播放速度時&#xff0c;要根據視頻內容來進行調整。一般來說&#xff0c;…

探索穩定擴散技術中的LoRA權重激活:從模型微調到動漫風格圖像生成的全過程

多重LoRA權重激發穩定擴散 穩定擴散控制網絡流水線步驟1&#xff1a;環境準備步驟2&#xff1a;模型轉換步驟3&#xff1a;運行時流水線測試 啟用穩定擴散的LoRA權重步驟4-1&#xff1a;通過pytorch_lora_weights.bin啟用LoRA步驟4-2&#xff1a;通過safetensors類型的權重啟用…

008 OpenCV matchTemplate 模板匹配

目錄 一、環境 二、模板匹配算法原理 三、代碼演示 一、環境 本文使用環境為&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、模板匹配算法原理 cv.matchTemplate是OpenCV庫中的一個函數&#xff0c;用于在圖像中查找與模板匹配的特征。它的主要應用場景…

leetcode:645. 錯誤的集合(python3解法)

難度&#xff1a;簡單 集合 s 包含從 1 到 n 的整數。不幸的是&#xff0c;因為數據錯誤&#xff0c;導致集合里面某一個數字復制了成了集合里面的另外一個數字的值&#xff0c;導致集合 丟失了一個數字 并且 有一個數字重復 。 給定一個數組 nums 代表了集合 S 發生錯誤后的結…

創建 Plotly 的散點線圖

一 使用 Plotly 畫圖 import plotly.graph_objects as godef img_show_fig(out_data_today):# 創建 Plotly 的散點線圖fig go.Figure()# 添加散點線fig.add_trace(go.Scatter(xout_data_today.index,yout_data_today.values,modelinesmarkers,markerdict(colorred, # 設置數…

揭秘周杰倫《最偉大的作品》MV,絕美UI配色方案竟然藏在這里

色彩在UI設計的基本框架中占據著舉足輕重的位置。實際上&#xff0c;精心挑選和組合的色彩配色&#xff0c;往往就是UI設計成功的不二法門。在打造出一個實用的UI配色方案過程中&#xff0c;我們需要有堅實的色彩理論知識&#xff0c;同時還需要擅于從生活中觀察和提取靈感。以…

uboot中nfs和tftp方式獲取文件

NFS文件系統掛載 服務器端配置如下 1.Server端需要安裝NFS服務&#xff1a; sudo apt-get install nfs-kernel-server2.創建需要掛載的路徑&#xff1a; mkdir -p /home/workspace/mercury/nfs_path3.創建共享目錄&#xff1a; ①vim /etc/exports ②在文件中添加&#xff…

Java 中 HashSet 和 TreeSet 的區別

簡介&#xff1a; 在Java開發中&#xff0c;HashSet和TreeSet都是常用的集合類&#xff0c;用于存儲不重復的元素。雖然它們都實現了Set接口&#xff0c;并提供了相似的功能&#xff0c;但在內部實現和特性上存在一些區別。本文將深入探討HashSet和TreeSet的差異&#xff0c;幫…

人機交互模塊的發展

人機交互&#xff08;Human-Computer Interaction&#xff0c;HCI&#xff09;是指人與計算機之間進行交互和信息交換的過程。人機交互模塊的發展經歷了多個階段&#xff0c;從早期的命令行界面到現在多樣化的交互方式&#xff0c;不斷發展和創新。以下是一些人機交互模塊的發展…