Linux文件与目录的复制、删除与移动

news/2024/11/24 9:15:42/

cp(复制文件或目录)

cp 【-adfilprsu】 源文件 目标文件

cp 【options】源文件1 源文件2 ......目录

选项与参数:

-a:相当于-dr --preserve=all的意思,至于dr参考下面说明

-d:若源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身

-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后在尝试一次

-i:若目标文件已经存在时,在覆盖时会先询问操作的进行

-l:进行硬链接(hard link)的链接文件而非复制文件本身

-p:连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用)

-r:递归复制,用于目录的复制操作

-s:复制成为符号链接文件(symbolic link),亦即“快捷方式”文件

-u :destination(目标文件)比source(源文件)旧才更新destination,或destination不存在的情况才复制

-preserve=all:除了-p的权限相关参数外,还加入了SELinux的属性,links、xattr等也复制

注意:如果源文件有两个以上,则最后一个目标文件一定要是“目录”才行

不同身份者执行这个命令会有不同的结果产生,尤其是-a、-p选项

-i演示

root身份把家目录下的.bashrc复制到/tmp下并更名为bashrc

当我们使用-i后进行重复复制时,会发现它会询问我们是否覆盖

-a演示

进入tmp目录后复制/var/log/wtmp复制到当前目录

查看后,我们可以发现不加任何选项后文件的某些属性/权限会改变,还有文件的建立时间也不一样了,所以我们想要全部复制时,可以加上-a选项

-r演示

 -r可以复制目录,但文件与目录的权限可能会被改变

-l与-s演示

 -l就是所谓的硬链接,至于-s则是符号链接,简单来说就是bashrc_slink就是一个快捷方式

-u是在目标文件与源文件有差异时,才会复制,所以常用于备份工作(-a也常用于备份)

去复制文件时,对于该文件我们必须拥有read权限

我们使用其他身份去使用cp时,它并不能随意去修改文件的拥有者与用户组,也就是无法完成完整权限的复制

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

  • 是否需要完整的保留源文件的信息
  • 源文件是否为符号链接文件(symbolic link file)
  • 源文件是否为特殊的文件,例如:FIFO、socket等
  • 源文件是否为目录

rm(删除文件或目录)

rm 【-fir】 文件或目录

选项与参数:

-f:就是force的意思,忽略不存在的文件,不会出现警告信息

-i:交互模式,在删除前会询问使用者是否操作

-r:递归删除,最常用于目录的删除

-i用于删除前询问是否删除

 -r递归删除

我们使用rmdir时可以发现删除不了,因为它不是一个空目录,所以我们可以使用-r来递归删除

 为了防止文件被root误删,所以许多Linux的发行版都默认加入了-i选项

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

mv 【-fiu】 source destination

mv 【options】 source1 source2 source3 .... directory

选项与参数:

-f:force强制的意思,如果目标文件已存在,不会询问而是直接覆盖

-i:若目标文件已存在,会询问是否覆盖

-u:若目标文件已存在,当source比较新才会更新

移动:

mv因为移动的特性导致它还有个重命名的用途

可以看到最后一行以及重命名为mvtest2了

其实在Linux下还有个命令为rename,该命令专职进行多个文件名的同时命名,并非针对单一文件名修改


http://www.ppmy.cn/news/22883.html

相关文章

【RabbitMQ】Fanout、Direct、Topic、消息转换器

目录 1.发布/订阅 2.Fanout 2.1.声明队列和交换机 2.2.消息发送 2.3.消息接收 2.4.总结 3.Direct 3.1.基于注解声明队列和交换机 3.2.消息发送 3.3.总结 4.Topic 4.1.说明 4.2.消息发送 4.3.消息接收 4.4.总结 5.消息转换器 5.1.测试默认转换器 5.2.配置JSON…

内网渗透(九)之内网信息收集-手动本地信息收集

前言 不管是在外网中还是在内网中,信息收集都是重要的第一步。对于内网中的一台机器,其所处内网的结构是什么样 的、其角色是什么、使用这台机器的人的角色是什么,以及这台机器上安装了什么杀毒软件、这台机器是通过什么方式上网的、这台机器是笔记本电脑还是台式机等问题,都需…

ESP32设备驱动-MMA7361加速度计驱动

MMA7361加速度计驱动 1、MMA7361介绍 MMA7361L 是一款低功耗、薄型电容式微机械加速度计,具有信号调理、1 极低通滤波器、温度补偿、自检、检测线性自由落体的 0g-Detect 和允许在 2 种灵敏度之间进行选择的 g-Select . 零重力偏移和灵敏度是出厂设置的,不需要外部设备。 M…

Ngrok免费实现内网穿透

1、使用场景 让本地局域网的跑的应用可以被外网访问 2、常用内网穿透工具 能实现内网穿透的工具也挺多,下面列出了几个 Ngrok 一个通过任何NAT或防火墙为您的本地主机服务器提供即时访问、安全的URL的命令。类似花生壳,分为服务端和客户端&#xff0…

「2」C++/C程序的基本概念

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 🐰标识符 🏡前言 🌸标识符的属性 🤔提示 …

Android APK 签名打包原理分析(一)【APK结构分析】

1.引言 最近在看AOSP Apk安装的相关源码时,发现自己对这块知识一直停留到用的层面,并未有深入的了解,例如打包的具体过程、签名的具体过程、渠道打包,最重要的,自己这几年在做系统方面的应用时,也解决过很多apk 安装的问题,修改过部分的系统源码,可是没有把这块知识系…

【Three.js基础】创建场景、渲染场景、创建轨道控制器(一)

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…

HBase-replication流程

一、核心工作原理二、主要流程解析2.1获取从集群rs列表流程初始化从集群zk连接: 只会在RS启动的时候初始化或者新增peer的时候一次,后续不再初始化,所以不从集群扩容后不能被主集群识别到将从集群的zk连接传递给ReplicationEndpoint:在ReplicationSource…