6.2.2 复制、删除与移动: cp, rm, mv

news2024/10/6 12:31:20

要复制文件,使用cp(copy)指令,移动目录与文件,使用mv(move),这个指令直接拿来作更名的动作(rename),移除是rm(remove)。

cp (复制文件或目录)

复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是那个-a, -p的选项, 对于不同身份来说,差异则非常的大。

这个 cp 的功能很多,由于我们常常会进行一些数据的复制,所以也会常常用到这个指令的。一般来说,我们如果去复制别人的数据 (当然,该文件你必须要有 read 的权限才行) 时, 总是希望复制到的数据最后是我们自己的,所以,在默认的条件中, cp 的来源文件与目的文件的权限是不同的,目的文件的拥有者通常会是指令操作者本身。举例来说, 上面的范例二中,由于我是 root 的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了。

由于具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限文件, 例如密码档 (/etc/shadow) 以及一些配置文件,就不能直接以 cp 来复制,而必须要加上 -a或者是 -p 等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者, 也必须要注意到文件的权限(包含读、写、执行以及文件拥有者等等), 否则,其他人还是无法针对你给予的文件进行修订的动作。

范例四,使用-l及-s都会创建所谓的链接文件(link file),但是这两种文件却有不同的情况。-l就是所谓的实体链接(hard link),至于-s则是符号链接(symbolic link)。

至于bashrc_hlink文件与bashrc的属性与权限完全一模一样,与尚未进行链接前的差异则是第二栏的link数由1变成2了。

例题:你能否使用 dmtsai 的身份,完整的复制/var/log/wtmp文件到/tmp下面,并更名为dmtsai_wtmp呢?答:实际做看看的结果如下:

由于 dmtsai 的身份并不能随意修改文件的拥有者与群组,因此虽然能够复制wtmp的相关权限与时间等属性, 但是与拥有者、群组相关的,原本 dmtsai 身份无法进行的动作,即使加上 -a 选项,也是无法达成完整复制权限的。

总之,由于 cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到:

是否需要完整的保留来源文件的信息。

来源文件是否为链接文件(symbolic link file)

来源文件是否为特殊文件,例如FIFO,socket

来源文件是否为目录。

rm(移除文件或目录)

这是移除的指令(remove),要注意的是,通常在Linux系统下,为了怕文件被 root 误杀,所以很多 distributions 都已经默认加入 -i 这个选项了!而如果要连目录下的东西都一起杀掉的话, 例如子目录里面还有子目录时,那就要使用 -r 这个选项了!不过,使用“ rm -r ”这个指令之前,请千万注意了,因为该目录或文件“肯定”会被 root 杀掉!因为系统不会再次询问你是否要砍掉。所以那是个超级严重的指令下达。得特别注意!不过,如果你确定该目录不要了,那么使用 rm -r 来循环杀掉是不错的方式。

另外,文件名最好不要使用“-”号开头,因为“-”后面接的是选项,因此,单纯的使用“rm-aaa-"系统的指令就会误判。如果使用后面会谈到的正则表达式时,还是会出问题的!所以,只能用避过首位字符是 "-" 的方法,就是加上本目录“ ./ ”即可!如果 man rm 的话,其实还有一种方法,那就是“ rm -- -aaa- ”也可以。

mv (移动文件与目录,或更名)

这是搬移 (move) 的意思!当你要移动文件或目录的时后,这个指令就很重要。同样的,你也可以使用 -u ( update )来测试新旧文件,看看是否需要搬移。另外一个用途就是“变更文件名!”,我们可以很轻易的使用 mv 来变更一个文件的文件名。不过,在Linux 才有的指令当中,有个 rename , 可以用来更改大量文件的文件名,你可以利用 manrename 来查阅一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(07)装拆箱,自定义泛型,泛型约束,foreach,枚举器,迭代器,文件目录操作,TreeView,递归

一、作业问题 1.CompareTo是按什么规则标准进行比较的? 当前区域性执行单词 (区分大小写和区分区域性) 比较。 有关单词、字符串和序号排序 的详细信息,请参阅 System.Globalization.CompareOptions。 并不是按照…

每天一点Python——day42

#第四十二天 #判断字典中关键字是否存在in 存在返回Ture;反之为False not in 不存在返回True;反之为False#例: b{师傅:1000,师祖:10000,徒弟:500} print(师傅in b) print(师傅 not in b) #字典元素的删除del 字典名[健名]#例 a{张三:100,李四…

为什么现代的低代码开发平台都不支持导出源代码?

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 初次接触低代码的程序员大多会纠结一个问题,为什么功能越强大的低代码开发平…

C语言进阶--自定义类型详解

目录 一.结构体 1.1.结构的声明 1.2.结构的自引用 1.3.结构体变量的定义和初始化 1.4.结构成员的访问 1.5.结构体内存对齐 1.6.修改默认对齐数 1.7.offsetof宏 1.8.结构体传参 1.9.位段 二.枚举 2.1.枚举的定义 2.2.枚举的使用 2.3.枚举的优点 三.联合(共用体) …

ODrive电路设计中的接地环路

对于要进行通信的电气设备,大多数时候它们需要公共接地连接。最佳实践是将接地连接回一个点,称为“星形接地”。如果有多个接地路径,则会形成“接地环路”。接地环路和导线电感可能会导致 ODrive 等大电流电子设备出现问题。作为可能出错的示例,请查看下图。 问题: 问题在…

【计算机网络】数据链路层--点对点协议PPP

1.概念 2.构成 3.封装成帧 - 帧格式 4.透明传输 4.1字节填充法(面向字节的异步链路) 4.2.比特填充法(面向比特的同步链路) 5.差错检测 6.工作状态 7.小结

使用Vite 搭建高可用的服务端渲染SSR工程

在非常早期的 Web 开发中,大家还在使用 JSP 这种古老的模板语法来编写前端的页面,然后直接将 JSP 文件放到服务端,在服务端填入数据并渲染出完整的页面内容,可以说那个时代的做法是天然的服务端渲染。但随着 AJAX 技术的成熟以及各…

Typescript中的interface,type和class的相同点和不同点

感觉他们很像是不是? 他们确实有一些相同点: 相同点: 它们都可以用来描述对象的形状,即属性和方法。它们都可以被继承或实现,形成新的类型或类。它们都可以使用泛型参数,增加类型的灵活性和复用性。 不同…

jenkins shell脚本问题

问题描述: mac电脑配置了jenkins,同样的脚本,mac 电脑终端执行没有问题,复制到jenkins时,jenkins shell命令识别不了 -n指令。 解决方案: jenkins 系统配置中,找到shell 模块,配置上本地的路…

继骨传导耳机之后,新发布开放式耳机又成断货王!2年3代爆款,南卡怎么吸引年轻人?

今年618后,南卡的开放式耳机OE Pro成了新一代“断货王”,火爆程度直逼南卡的骨传导耳机Pro系列。 仔细想想,南卡已做出了3代爆款:骨传导Pro系列、骨传导Noe系列,南卡开放式OE系列,并且每一代都带动了该系列…

四、Docker镜像详情

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、Docker镜像1.1 概念1.2 UnionFS(联合文件系统)1.3 Docker镜像加载原理1.4 重点理解 二、docker commit 命令2.1 是什么?2.2 命令…

分布式调用与高并发处理 Zookeeper分布式协调服务

一、Zookeeper概述 1.1 集中式和分布式 单机架构 一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器提供。 缺点: 服务性能存在瓶颈,用户增长的时候…

LENOVO联想笔记本电脑 拯救者Y520-15IKBN(80Y5)原装Win10系统文件,恢复出厂OEM系统

lenovo联想笔记本电脑,拯救者Y520-15IKBN(1050、1050Ti) (80Y5)出厂状态Windows10系统,原装OEM系统镜像 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:IS…

Python基础学习注意事项

1.Python中 小数字符串不可以转成int,即int("98.9")会报错! 数字字符串串才可以转对应的int、float 2.float数据计算的时候精度会丢失!解决办法:(from decimal import Decimal(可以计算准确&am…

npm启动,node.js版本过高

“dev_t”: “set NODE_OPTIONS”–openssl-legacy-provider" & npm run dev\n"

easyConnect 报本地环境异常错误

一、检查任务管理器中发现ecagent.exe进程是禁用状态。如图: 二、在异常客户端上,找到easyconnect的安装目录(默认路径:C:\Program Files (x86)\Sangfor\SSL\ECAgent),找到ecagent.exe应用程序尝试手动执行…

【2023 可信数据库发展大会】拓数派受邀参与,CTO 郭罡将在大会发表演讲

2023年7月4日~5日,由中国信息通信研究院、中国通信标准化协会指导,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)主办的2023可信数据库发展会将于北京国际会议中心隆重召开。 大会以“自主创新引领”为主题&#xff0…

深入学习单例设计模式

目录 一.单例模式的定义 二.单例模式的实现方式 1.懒汉模式: 2.饿汉模式 3.静态内部类方式 4.反射模式 5.枚举方式 6.序列化方式 三.单例模式的应用 一.单例模式的定义 保证一个类只有一个实例,并且提供一个全局访问点 使用的场景:…

【table中部分tr的折叠与展开】

示例功能&#xff1a; 1. 点击“作品”按钮&#xff0c;会显示author的作品信息 2. 再次点击“作品”按钮&#xff0c;会收起author的作品信息 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name&quo…

IDEA远程Debug调试工具(Remote)的使用

我们在开发的过程中&#xff0c;经常会遇到这样的情况&#xff1a;代码在本地测试得好好的&#xff0c;但部署上线后测试结果就不一样了&#xff0c;这时就需要去服务器上查看日志进行分析从而定位问题&#xff0c;但这样还是会比较麻烦&#xff0c;如果能够Debug调试&#xff…