如何使用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.mzph.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;不断发展和创新。以下是一些人机交互模块的发展…